Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Запись в файл.   Найти похожие ветки 

 
Janna   (2005-02-20 23:26) [0]

Всем привет.
Столкнулась с небольшой проблемой. В TEdit набираю слово, жму на кнопку и слово должно записаться в файл. Тут проблем нет. Но я не представляю как реализовать проверку на наличие в файле заносимого вновь слова. Короче, как исключить повторение слов?
Все слова русские, различной длины.


 
Virgo_Style ©   (2005-02-20 23:42) [1]

Если по-простому, то
- загрузить файл в ListBox: LoadFromFile
- проверить наличие строки: ListBox.Items.IndexOf()
- добавить, если ее еще нет: ListBox.Items.Add()
- сохранить файл: SaveToFile


 
Anatoly Podgoretsky ©   (2005-02-20 23:44) [2]

Слова отдельно по одному на строку, если так то очень подзодит TstringList


 
default ©   (2005-02-20 23:47) [3]

по-видимому, слова в файл будет заносить пользователь
значит их суммарная длина не будет велика
тогда пишешь первое слово в сортируемый TStringList
записываешь его в файл
при записи второго через TStringList.Find
определяешь не записано-ли такое уже слово в файл если нет добавляешь его в TStringList и в файл и тд.
поскольку TStringList сортируемый скорость проверки повторяемости слов будет высока(работает двоичный поиск)


 
Anatoly Podgoretsky ©   (2005-02-20 23:54) [4]

А зачем его искать, проще установить свойство не разрешающие дубликаты и всего дело.


 
default ©   (2005-02-20 23:58) [5]

Anatoly Podgoretsky ©   (20.02.05 23:54) [4]
тут вроде про другую повторяемость идёт дело


 
default ©   (2005-02-21 00:01) [6]

Anatoly Podgoretsky ©   (20.02.05 23:54) [4]
да верно если слова записываются в файл в конце скопом


 
Anatoly Podgoretsky ©   (2005-02-21 00:06) [7]

А это проблемв?
LoadFromFile;
Add(Новое слово/слова)
SaveToFile;

И не надо никаких поисков и проверок.


 
default ©   (2005-02-21 00:16) [8]

Anatoly Podgoretsky ©   (21.02.05 00:06) [7]
тут каждый раз весь файл переписывается и каждый раз загружается ВЕСЬ да и поиск тоже есть только уже не в сортруемом массиве, можно отсортировать, но это дополнительное время, а в моём случае в TStringList-е содержатся слова записываемые только во время текущей секции, поиск быстрее, запись в файл быстрее, весь файл не загружается в память


 
default ©   (2005-02-21 00:18) [9]

Anatoly Podgoretsky ©   (21.02.05 00:06) [7]
мы малость о разном говорим, мы не знаем как именно будут в файл писать слова-по одному и в конце все скопом отсюда и разногласия


 
Anatoly Podgoretsky ©   (2005-02-21 00:28) [10]

А у тебя "пишешь первое слово в сортируемый TStringList" не надо загружать? Напоминаю вопрос "Но я не представляю как реализовать проверку на наличие в файле заносимого вновь слова". И условие в [2] хотя это тоже не проблема, хоть скопром, хоть по одну. Есть поддержка на разделение слов в самом TDtringList. Для всего остального просто нет информации в вопросе, если такая появится то можно скорректировать поведение.


 
Плохиш ©   (2005-02-21 00:35) [11]

И где-нибуть через день выяснится, что работают неколько пользователей, одновременно и с одним файлом ;-)


 
Anatoly Podgoretsky ©   (2005-02-21 00:38) [12]

Есть понятие блокировка файлов


 
Janna   (2005-02-21 00:51) [13]

Спасибо всем за отзывчивость. Уточню: каждое слово в файле на новой строке, запись происходит по одному слову в конец файла. Если не сложно, подскажите самый простой и рациональный способ решения проблемы, я так поняла вариантов решения довольно много.


 
Anatoly Podgoretsky ©   (2005-02-21 00:55) [14]

Если порядок слов в файле не важен, то Anatoly Podgoretsky ©   (21.02.05 00:06) [7]
Про размер тоже не слова, но сообственно это и не важно, все равно загружать весь список в файл для быстрой работы.



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.043 c
14-1108553563
syte_ser78
2005-02-16 14:32
2005.03.06
dvd-to-avi


11-1090499233
raize
2004-07-22 16:27
2005.03.06
MessageDlg


14-1108337563
neXOR
2005-02-14 02:32
2005.03.06
Какую профессию выбрать ?


1-1108975451
snake_r
2005-02-21 11:44
2005.03.06
Закрытие формы


1-1109092925
Knight
2005-02-22 20:22
2005.03.06
Как узнать реальный объём занимаемый файлом на диске...