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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2008, 11:26   #1
Arteom
Пользователь
 
Регистрация: 22.08.2007
Сообщений: 59
По умолчанию Проверка повторяемости данных

Доброго времени суток всем! Помогите найти лучшее решение из возможных.
Есть некий файл, я из него читаю данные и сохраняю все как мне надо. Через некоторое время мой исходный файл обновляется. Я опять его читаю и делаю что мне надо. Проблема вот в чем: когда я читаю файл каждый последующий раз, в нем могут быть данные, которые уже были в предыдущем файле и я их уже обработал, соответственно повторно делать этого не нужно. Как лучше сделать проверку повторности данных? Как варианты: писать в текстовый файл и каждый раз перебирать и сравнивать, создать БД и писать туда, а потом делать выборку и опять же сравнивать. А может есть какой-нибудь специальный компонент для этого?
Как лучше разрешить такую задачу?
Arteom вне форума Ответить с цитированием
Старый 11.12.2008, 11:30   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Для начала поясните, какие данные и в каком формате хранятся в файле?
Arigato на форуме Ответить с цитированием
Старый 11.12.2008, 11:33   #3
Arteom
Пользователь
 
Регистрация: 22.08.2007
Сообщений: 59
По умолчанию

читаю из dbf файла поля в string
Arteom вне форума Ответить с цитированием
Старый 11.12.2008, 11:39   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Как я понял файл постоянно растет в размере при каждом обновлении. Собственно если вы упарвляите форматом файла то допишите один байт к каждому полю - т.е. если он будет равен 0 к примеру - то это поле вы не читали тогда читем и пишем это место ту же 1 (еденицу). Иначе если формат не от вас зависит... можно просто бинарный файл рядом класть типа смещение - 4 байта, т.е. на какой позиции вы уже читали поле ну или просто число одно - тоже смещение..т.е. последнее обработаное с начала файла. допустим был файл 32 кб вы прочитали первые 16 и пишите 16 * 1024 и будет вам позиция в файле. Потом открываите новый обновленный файл и ставите именно на позицию 16 * 1024 и продолжаите читать.

Если данные обновленные приходят бесспорядочно и затирают старый файл, то как вы и говорите вести учет данных в базе данных.

Т.е. грубо говоря так можно рассуждать сколько влезет. Если откроите тему по полной... то можно будет вместе отобрать лучшее решение или придумать новое.
BOBAH13 вне форума Ответить с цитированием
Старый 11.12.2008, 12:02   #5
Arteom
Пользователь
 
Регистрация: 22.08.2007
Сообщений: 59
По умолчанию

Каждый новый файл может как содержать повторные поля, так и не содержать их (это не от меня зависит, я работаю с заданным файлом), по этому первый вариант, к сожалению, не подходит. Вариант с базой данных пусть пока остается как резервный, если не найдется ничего лучше, тогда буду использовать БД.
Но может есть еще какой-нибудь способ, кроме использования БД?
Arteom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на НДВ webprogect Безопасность, Шифрование 1 07.11.2008 14:39
Проверка Манжосов Денис :) Общие вопросы Delphi 4 17.10.2008 16:27
Проверка на дублирование в базе данных POPOV Помощь студентам 9 04.12.2007 18:21
проверка ввода данных в форму @Simpson JavaScript, Ajax 1 12.11.2007 02:17
Проверка на отсутствие данных в БД Elena БД в Delphi 5 14.06.2007 16:10