Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.028 c
9-71456
Uncle Archi
2003-03-21 23:31
2003.09.22
GLScene в Run-time


1-71592
voronkov
2003-09-09 12:22
2003.09.22
Проблема с передачей бинарных данных в DLL


1-71580
Jao
2003-09-09 17:37
2003.09.22
в 7-ой дельфе исчезли компоненты шифрования md2-md5


8-71763
som
2003-05-19 12:14
2003.09.22
работа с мр3


3-71520
Maza
2003-08-29 16:08
2003.09.22
AutoInc