|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Работа с файлами TXT...
Вообщем фигня такая :
Есть база. Это TXT файл. Структура у него такая : Код:
!Наименование описание end !Наименование описание end !Наименование описание end // и так много раз Нужно было реализовать 3 функции. Это - Добавить, Удалить, Изменить Функцию Добавить я уже реализовал . А вот с удалить никак. И с изменить тоже . [ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#2
|
||||
|
||||
Ты хочешь удалять все две строчки (представляются как один пункт)?
Если да, то просто в коде каждые две сторочки TXT файла представь как одну. И потом удаляй программно эти пункты, и всё. А чтобы изменить, просто подгружай каждые две сточки отдельно в два разных TEdit'а и редактируй, а потом программно сохраняй. Думаю что у тебя всё получится. |
#3
|
||||
|
||||
Берем TStringList, у него реализована и вставка строки и удаление и добавление. Грузим в него файл.
Пишем функцию которая возвращает количество записей/блоков в этом TStringList. Затем пишем функцию которая читает блок по его номеру. Например если "описание" - одна строка, то блок с номером 7 следует читать таким образом: читаем 3 строки из позиции (7*3)-1, т.е. строки с индексами 20,21,22. Ну и естественно перед чтением нужно проверять существует ли такой блок в файле, т.е. его номер не больше количества блоков. Затем пишем вставку блока в конкретную позицию. Так же вставляем 3 строчки начиная от определенной позиции. Ну и в оконцовке - удаление |
#4
|
||||
|
||||
Не , Все не то .
Вот пример базы : Код:
!Some programm ляляля ваоыдала фыв аф ывп ыафп впр end !Some other programm вшагфыовадлыфоа фвыа фыва ыфв а ыфа end Вся фишка в том что не известно сколько строк в описании. Я думал сделать так : 1. Выбераем прогу. (acdsee например) 2. В базе идет поиск : Код:
var fbase : TextFile; a : String; begin ..... repeat if Readln(fbase,a)='!'+Form1.ListBox1.Items[Form1.ListBox1.ItemIndex] then begin // И удалять до слова 'end' . Но как удалять ??? end; until EOF(fbase) end; [ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#5
|
||||
|
||||
Вот набросал небольшой класс который реализует подсчет количества записей, чтение по индексу (начиная с 1), и удаление по индексу.
Посмотри, добавление и вставку по аналогии, ничего сложного. Файл на котором тестил там же в архиве. Если возникнут вопросы, то сегодня 24/08/07 буду в RUSNet на каналах #coding #delphi, в DALNet на канале #delphimaster где-то с 18-19 Московского времени. |