Текущий архив: 2003.09.22;
Скачать: 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 вся ветка
Текущий архив: 2003.09.22;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.011 c