Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 01:32   #1
yuran111
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 33
По умолчанию где хранить данные принято?

каждый день из инета получаю инфу в виде таблиц. кидаю в файлы текстовый (каждая ячейка - строка в файле. и формата с разделителем(каждая строка таблицы - строка файла с разделителем- вертикальная черта. потом просматриваю через стринггрид, но фильтровать как-то медленно и сложно там. а как правильно или скорее принято хранить подобную инфу. например в акцессе все в таблицах, которые внутри программы, а как в делфи принято, чтобы потом с таблицами было удобно работать - фильтровать, сортировать?
yuran111 вне форума Ответить с цитированием
Старый 06.05.2011, 07:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как в делфи принято
А как напишешь так и принято. Нет однозначного критерия. Удобнее всего пихнуть в БД и делать выборку из нее SQL запросами. Почитай про ADO.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2011, 10:08   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
как в делфи принято, чтобы потом с таблицами было удобно работать - фильтровать, сортировать?
В Делфи принято работать с таблично-ориентированными наборами данных с использованием специально заточенных под такие задачи классов - TDataSet и множества его наследников.

Цитата:
получаю инфу в виде таблиц. кидаю в файлы текстовый
Ты сам себе осложнил жизнь: своими руками создал себе проблему и теперь героически ее преодолеваешь)

А следовало бы поступить иначе: на базе TADODataSet или TClientDataSet подготовить метаданные будущей таблицы (поля, индексы и пр.), получив таблицу в ран-тайм создать экз-р дейтасета (метод CreateDataSet), заполнить его данными из полученной таблицы (методы Insert, Post) и сохранить в файл (метод SaveToFile).
После этого данные можно загрузить дейтасет из файла (метод LoadFromFile) и использовать всю его готовую мощь (методы индексной фильтрации, сортировки, поиска, позиционирования и пр.). И для визуального доступа к данным в дейтасете и навигации по ним все готовое тоже есть - классическая связка TDBGrid + ЕDBNavigator + TDataSource. Ну и куча стандартных и сторонних DbAware-компонентов всегда под рукой - всякие лукапы, выпадающие списки и пр. и пр.
mss вне форума Ответить с цитированием
Старый 06.05.2011, 14:47   #4
yuran111
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 33
По умолчанию

спасибо, я понял что пошел не по тому пути когда дошло дело до фильтрации данных. ну первый раз писал. вообщем сейчас файлики открываю через access и работаю. ну буду учить по вашим советам спасибо. а для тестирования и изучения мне бы помог какой проектик для работы с этими датасетами. может кто скинет посмотреть что похожее для delphi7? может кому скинуть свой проект. там таблица простая ---код товара(иногда повторяется)--- описание товара---количество---цена---адрес---
30000 строк - как подготовить датасет и сохранить в файл, какого формата? хоть както подскажите от чего оттолкнутся?

Последний раз редактировалось yuran111; 06.05.2011 в 15:01.
yuran111 вне форума Ответить с цитированием
Старый 06.05.2011, 19:30   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насчет проектиков - посмотри в папке Demos. Даже если там для BDE будет тоже полезное знание про базы данных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2011, 21:12   #6
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Если с БД связываться не хочешь, то можно хранить в типизированном файле.
Код:
type
  TVopros = record
    V: string;
    a1, a2, a3: string;

...

var
  Vopros: file of TVopros
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 06.05.2011, 21:43   #7
art-programs
Пользователь
 
Регистрация: 04.07.2009
Сообщений: 61
По умолчанию

а что вы в конечном счёте делаете с этими данными?
если просто просмотр и редактирование, то просто нагуглите пример работы с
access через ado
инфы куча

имхо, 30 000 строк это слегка уже лишнего для аксеса
если база будет расти, то выбирайте mysql
art-programs вне форума Ответить с цитированием
Старый 07.05.2011, 00:30   #8
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

chertovich с простым стрингом так не прокатит.
eduard93 вне форума Ответить с цитированием
Старый 07.05.2011, 17:20   #9
yuran111
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 33
По умолчанию

ну база расти не будет - что то продали что -то конфисковали, а с данными я каждый день вытяниваю с инета и потом сравнивая первые 20 символов строки где код и наименование товара(а потом идет цена и количество - они могут меняться) поэтому первые 6 символов кода товара и 14 символов достаточно из описания товара, чтобы отобрать появившиеся в этой базе новые. я красиво все пишу в файлы обработав данные из инета. в файлах данные упорядочены по строкам например с разделителями. подключится к ним из акцесса не проблема и фильтровать по городу по некоторым символам из строки, по наименованию товара - это все что я хотел получить. но как к текстовам файлам подключится и работать( в удобном в виде просматривать с фильтрацией, поиском) из делфи я пока не понимаю. если почитаю, то разберусь конечно, но могу опять полезть в дебри, а прошу у вас код похожей задачи изучая который я быстрее разобрался бы. я не программист, поэтому в этой теме и пишу. базу за каждый день называю файл с цифрами даты в названии, чтобы потом сравнивать на изменения. ну как к ним подключаться, чтобы вытянуть в дбгрид например и на каком этапе фильтровать, пока не понимаю. файлики текстовые получаются по 5 мегабайт примерно каждый день - поэтому в файлах хранить базы это правильно наверно?
yuran111 вне форума Ответить с цитированием
Старый 07.05.2011, 20:16   #10
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

В последних версиях делфи есть интересная демка TextData (C:\Users\*\Documents\RAD Studio\8.0\Samples\Delphi\Database\ TextData). Там создается датасет, работающий с текстовыми файлами.
Если вам лень изобретать велосипед и все равно, каким будет формат файла, то можно попробовать TClientDataSet. Демка с его использованием: C:\Users\*\Documents\RAD Studio\8.0\Samples\Delphi\VCL\Frame s
eduard93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drupal где лучше хранить доп. модули Alexei91 WordPress и другие CMS 3 13.12.2011 09:26
Где хранить большие изображения в приложении? MyLastHit Общие вопросы Delphi 11 21.12.2010 13:36
как и где хранить изображения? kate158 БД в Delphi 9 20.08.2010 16:37
где хранить рессурсы (Delphi) BanDit Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 25.01.2008 00:50