LINUX.ORG.RU

Хранение тестовых данных в файле. Ваш метод.

 ,


1

2

Пилю свой велосипед. Мой проект я делаю под себя, но если он будет годным, то выложу на суд общественности.

Процесс подошёл к реализации хранения неких разнообразных текстовых и числовых данных в файле.

В принципе задача проста, вписал буковки в файл в нужном порядке, а потом в том же порядке их считал.

Если необходимо, можно:

  1. Придумать свои осбоые правила компоновки,набор допустимых символов, реализовать их проверку;
  2. Шифровать;
  3. Ужимать текст;
  4. Вообще придумать свой алфавит и хранить в нём;
  5. итп у кого на что хватит фантазии и у кого какие задачи.

Собственно вопрос:

Есть ли какие стандарты по хранению информации в файле, или как обычно это реализуют умные дяди и солидные конторы?

Просто чтобы меня сразу не закидали тухлыми помидорами, если я сделаю это по своему, и потом всё таки решусь выложить это.



Последнее исправление: beastie (всего исправлений: 2)

Если текстовые данные, то CSV, JSON, XML использую. Есть ещё YAML.

Так же можно посейвить бинарные данные в виде текста - см. base64.

Norgat ★★★★★
()
Последнее исправление: Norgat (всего исправлений: 1)

xml, json и емнип yaml умеют в схема валидации. а это порой достаточно важно. опять же какого класса велосипед, на каком языке, каком фреймворке?

exception13 ★★★★★
()

и да, для каких целей? а то может тебе стоит просто взять sqlite если у тебя там еще какие то выборки и расчеты по данным есть.

exception13 ★★★★★
()

Смотря что нужно. Человекочитаемо? JSON, YAML. Эффективно и расширяемо? Protobuf. Данных много, нужны выборки? sqlite.

slovazap ★★★★★
()
Ответ на: комментарий от exception13

Текстовых.
Спасибо, пофиксил.
Пишу на pascal в Lazarus.
Программу я хотел сразу на две ОС, поэтому выбрал его. Велосипед должен быть не слишком сложным, чтобы была золотая середина между своими решениями и модулями. Это не супер-мега-проект, скорее блокнот с наворотами.

artemka91
() автор топика
Ответ на: комментарий от slovazap

По идее человекочитаемо, но не суть. Текста потенциально много, и да, нужно добавлять данные время от времени. Плюс со временем в программе могут появиться новые параметры, которые будет необходимо максимально безболезненно вставлять

artemka91
() автор топика
Ответ на: комментарий от artemka91

Программу я хотел сразу на две ОС, поэтому выбрал его.

Пробовал и CodeBlocks, но не осилил wxGTK. Считаю библиотеку компонентов Lazarus более документированной, и богатой. Может я и не прав, но во всяком случае в Лазарусе я чувствую чебя немного комфортнее, да и причин рыскать в гугле, выясняя почему оно не скомпилилось, меньше.

artemka91
() автор топика
Ответ на: комментарий от exception13

Думаю остановлюсь на xml. sqlite возможно в некоторых местах был бы более уместен, но учитывая класс велосипеда.. Благодарю за советы.

artemka91
() автор топика
Ответ на: комментарий от artemka91

для документов только xml. sqlite только для хранения и выборки данных в рамках одного инстанса/инстансов на локалхосте.

exception13 ★★★★★
()
Ответ на: комментарий от artemka91

ты щаз лихо сравнил две IDE под разные языки, примешав туда графическую библиотеку. это наводит на странные подозрения.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Shadow

О как... Проще wx только Tk

Ну как не осилил:
в начале привыкал к wxSizer'ам,
затем пыхтел над добавлением в проект своего класса, написанного отдельно,
а потом в codeblocks под windows что то сломалось, и перестало компилироваться.
В итоге я забросил проект на месяц. За месяц собрался с мыслями немного, и, переосмыслив задачу, решил сесть за неё заново. Чтобы не париться, выбрал другую IDE, в которой (по моему мнению) меньше шансов что-либо поломать.
Скорее всего виноват не wxGTK, а то, что я к тому моменту имел в голове более чёткое представление того, чего в итоге хочу.

ты щаз лихо сравнил две IDE под разные языки, примешав туда графическую библиотеку. это наводит на странные подозрения.

Ну, я конечно не имею двадцати лет опыта программирования на С/С++,
да и по специальности я не программист(это больше увлечение), так что могу по неосторожности что-нибудь ляпнуть.
На счёт графической оболочки: Я хотел кросплатформенное решение, поэтому выбор пал на wxgtk. В Codeblocks он впилен. Плюс встроен неплохой wysiwyg редактор.
Как по мне, на чём программировать не имеет особого значения. Главное оптимально выполнить поставленную задачу.

artemka91
() автор топика

Если нужно читать/писать программно, то обычно использую JSON (если просто текст и преимущественно для машинной обработки) или Markdown+мета-информация в YAML (если это документ и требуется ковыряться с ним вручную).

Если писать вручную (конфиги и прочее), то предпочитаю YAML или .ini

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.