Страница 1 из 3

База на основе txt файла

Добавлено: 10 дек 2004, 02:06
pominub
Здравствуйте. У меня такая ситуация:
Допустим имеется диалог, на котором несколько EditBoxов
и ListCtrl. Каждая строка, находящаяся в списке имеет свои параметры,
которые высвечиваются в EdiBox`ах при её выборе в списке.
То есть, добустим кликнул на строку, и в EdiBox`ах появились её параметры, и
так для каждой строки.

Например:(данные в текстовом файле)
строка1::параметр1::параметр2::параметр3... и т д.
Понятно, что при выборе строки надо считать её параметры из файла и засунуть в
EdiBox`ы. Только непонятно , как различать вообще данные в текстовом файле,
какие функции для этого есть???Как распознавать разделители(::)???

Заранее благодарен за ответы.

Добавлено: 10 дек 2004, 09:45
Tima
Если ты хош считывать каждый раз из текстового файла какие либо данные, то ты должен понимать - это далеко не оптимальное решение, лучше считать один раз в массив или в вектор. Но влюбом случае тебе прийдется придумать внутренний формат txt файла.
Например каждый параметр отделяется пробелом, каждая строка - с новой строки:
Вася 1990 Москва
Коля 1978 Киев
Для разделения параметров существует огромная куча функций (тут наверное лучше strtok) из библиотеки string.h Читай MSDN или любую книгу по С++.

Добавлено: 10 дек 2004, 10:25
Absurd
Нафиг, нафиг. Я уже имел дело с такой чудо - программой. Если найду автора - посталю большой синяк.
Юзай лучше XML & XPath.

Добавлено: 10 дек 2004, 10:47
Hup
pominub.
Absurd говорит дело.... Лучше используй XML(с ним все прозрачно + это его прямое предназначение), благо документации то этой теме полно + выработаешь стиль грамотно строить(разрабатывать) проект =)

Добавлено: 10 дек 2004, 11:44
Tima
так, coder-ы. Никто не говорит, что это оптимальное решение. Понятно что использовать лучше что-то другое. Но человек задал прямой вопрос, на что получил ответ. И судя по всему с XML не знаком. Так что не нужно советовать для тренировки в сях использовать XML.

Добавлено: 10 дек 2004, 12:21
Kolinus
А мот сериализовываться - не так прозрачно зато быстро и красиво.
А по поводу текстовика -придумываешь свой формат - и там уже во что горазд (хоть ручками ищи разделитель свой).

Добавлено: 10 дек 2004, 16:38
DeeJayC
Absurd писал(а):Нафиг, нафиг. Я уже имел дело с такой чудо - программой. Если найду автора - посталю большой синяк.
Юзай лучше XML & XPath.
Есть ещё вариант - если так уж хочется что-то sql-образное, то можно
использовать sqlite.

Добавлено: 11 дек 2004, 02:26
Hup
Tima, тогда зачем человек задает подобные вопросы?
Конечно можно можно так сделать в txt... А советуют изпользовать XML по его прямому назначению

Добавлено: 18 янв 2005, 16:05
WinMain
Есть неплохой вариант использовать файлы CSV (comma-separated variables), где данные в текстовых строках разделены запятыми (в некоторых реализациях используется точка с запятой). Этот формат документирован и поддерживается в Microsoft Excel. Алгоритм чтения здесь даже описывать не нужно, к тому же в сети можно поискать готовые CSV-парсеры. Если уж ничего готового не найдёшь и самому не под силу будет что-нибудь написать, то могу скинуть тебе алгоритм, который мне самому приходилось использовать для чтения и разделения данных из текстового файла. И никакой XML здесь не нужен.

Добавлено: 18 янв 2005, 16:13
Absurd
Во-первых XPath - это очень мощный язык запросов, во вторых XML парсер обычно бывает встроен в любую винду.
Не нужно никаких циклов, проверок, разборок итп. Просто загружаешь файл в парсер, и с помощью запросов выбираешь из него все нужное.
Программа будет абсолютно статична. Никаких движущихся частей. => Никаких багов.