Главная страница
    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.46 MB
Время: 0.012 c
8-71759
LOX
2003-05-25 11:23
2003.09.22
Звуковое сопровождение


3-71515
Don Korleone
2003-09-01 04:55
2003.09.22
BDE, IBX, TTable


1-71735
WeCom.WS
2003-09-09 19:40
2003.09.22
проблема с Тулбарами MS Word а в OleContainer е


3-71546
Hooch
2003-08-29 13:59
2003.09.22
TAdoDataSet


3-71470
Alecs
2003-09-02 12:27
2003.09.22
Работа с ISQL.exe из командной строки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский