Вниз
Скачать: CL | DM;

TXT файлы   Найти похожие ветки 

← →
drakulita ©   (2003-09-10 16:49) [0]

Как можно выбить строку из текстового файла? Есть ли какие способы не прибегая к перенарезки файла в другой?
Например:
ИМЕЕМ: 123
456
789
НУЖНО: 123
789 т.е. выбить начисто без пустоты


← →
Vovchik_A ©   (2003-09-10 16:55) [1]

Без какой пустоты ? Обрезая пробелы ?
Readln в цикле и Trim(твоя строка), если я все прпавильно понял


← →
ZEE ©   (2003-09-10 17:13) [2]

можно закачать файл в TStringList,
потом убить нужные строки
и сохранить TStringList в тот же файл


← →
Vovchik_A ©   (2003-09-10 17:21) [3]

Не, ему удалять надо. Тогда Delete(var S: string; Index,Count: Integer)


← →
ZEE ©   (2003-09-10 17:30) [4]

нет так
var sl:TStringList;
...
sl:=TStringList.Create;
sl.LoadFromFile("C:\aaa.txt");
if sl.IndexOf("456")>-1
then sl.Delete(sl.IndexOf("456"));

sl.SaveToFile("C:\aaa.txt");
sl.Free;


← →
Anatoly Podgoretsky ©   (2003-09-10 17:32) [5]

ZEE © (10.09.03 17:13) [2]
Лучше убивать наверно не нужные.


← →
ZEE ©   (2003-09-10 17:34) [6]


> Anatoly Podgoretsky © (10.09.03 17:32) [5]
> Лучше убивать наверно не нужные.

так судя по "ИМЕЕМ" и "НУЖНО" в вопросе - "456" ненужно...


← →
VAleksey ©   (2003-09-10 17:50) [7]


> drakulita © (10.09.03 16:49)

Никак. Нет.


← →
Vovchik_A ©   (2003-09-10 17:51) [8]

Не, а че, обычным Delete(); в цикле нельзя удалить ?


← →
drakulita ©   (2003-09-10 17:53) [9]

ZEE © (10.09.03 17:30) [4]

Где после этого остается курсор


← →
ZEE ©   (2003-09-10 17:59) [10]


> drakulita © (10.09.03 17:53) [9]
> Где после этого остается курсор

не понял, а где там вообще курсор ???
это же не визуальный компонент, а список TStringList


← →
Serginio666   (2003-09-10 18:05) [11]

ХеХе можно. Но при каждом удалении тебе нужно будет смещать все последущие записи на количество удаленных байтов.
Имхо лучше перезапись как TStringList только из памяти если таковой хватает или копирование в другой файл.


← →
Vovchik_A ©   (2003-09-10 18:08) [12]

Тогда TStringList+Копирование - другого выхода нету получается. Память - дело сложное :)


← →
default ©   (2003-09-10 18:08) [13]

"if sl.IndexOf("456")>-1
then sl.Delete(sl.IndexOf("456"));"
не оптимально)
лучше так
var
Index: Cardinal; // или какой там макс-ый индекс...
begin
//...
Index := sl.IndexOf("456");
if Index <> - 1 then sl.Delete(Index);
а то если файл большой двойной поиск одно и того же - эт не дело



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.015 c
14-71850
ArtemB
2003-09-01 13:51
2003.09.22
ADO + *.mdb


6-71808
Nick2000
2003-07-18 17:12
2003.09.22
Как узнать кол-во присоединенных пользователей?


11-71570
Danil
2003-01-12 01:53
2003.09.22
Помогите разобраться с OwnerDraw для ListBox...


3-71474
stud
2003-09-01 16:56
2003.09.22
в базе данных странные вещи!


4-72009
_smile
2003-07-21 13:59
2003.09.22
Использование accelerator tables




   Наверх