![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
подскажите пожалуйста мастера как можно в текстовом файле оставить нужные куски текста? Допустим есть текстовый файл с содежимым:
Саша 47 .... какой-то текст НатаШа 56.... дальше не нужный текст Саша 78.... какой-то текст НатаШа 71..... нужно чтобы осталось Саша 47 .... какой-то текст НатаШа 56.... Саша 78.... какой-то текст НатаШа 71..... т.е. нужно чтобы остались только нужные куски. Саша и Наташа в одной строке не попадаются. Бьюсь ни как не могу додуматься как сделать. Подскажите с примером плиз. Спсибо. |
|
#2
|
||||
|
||||
|
Код:
var
i: Integer;
...
with TStringList.Create do
begin
LoadFromFile('f.txt');
for i:=0 to Count - 1 do
if not ((Pos('САША', AnsiUpperCase(Strings[i])) <> 0) or (Pos('НАТАША', AnsiUpperCase(Strings[i])) <> 0)) then Delete(i);
SaveToFile('f.txt');
Free;
end; |
|
#3
|
|||
|
|||
|
Выдает ошибку
Project Project1.exe raised exception class EStringListError with message 'List index out of bounds (1020)'. Progress stopped. Use Step or Run to continue. Что такое? ![]() |
|
#4
|
||||
|
||||
|
Не знаю почему так получилось
Код:
var
i: Integer;
f: Array of String;
tmp: String;
begin
AssignFile(Input, 'f.txt');
Reset(Input);
while not Eof(Input) do
begin
Readln(Input, tmp);
if (Pos('САША', AnsiUpperCase(tmp)) <> 0) or (Pos('НАТАША', AnsiUpperCase(tmp)) <> 0) then
begin
SetLength(f, Length(f) + 1);
f[High(f)]:=tmp;
end;
end;
CloseFile(Input);
Rewrite(Input);
for i:=0 to Length(f) - 1 do
Writeln(Input, f[i]);
CloseFile(Input);
end; |
|
#5
|
|||
|
|||
|
В файле остается только Саша и Наташа, а как же текст между ними
, нужно чтобы текст между ними тоже оставался... ![]() |
|
#6
|
||||
|
||||
|
Значит я не так понял условие, а что именно должно остаться?
|
|
#7
|
|||
|
|||
|
Мне дан текстовый файл с описанием переменной f, количество переменных в файле заранее не известно.
>view f=0784 07/24/08_10:24:22 rty ### view subd start ### # basic information # f=0784 et=8974 sub_typ=analog lcls=indv chrg_cls=ama chrg_an=0 an=0 bnw=com tpad=0.0 rpad=-6.0 rc_org=1 rc_trm=0 chrg_ccls=nctl lctl=nctl st=trmv # service information # sc=clip clip_typ=p //total=1 >view f=3698 07/24/08_09:36:41 rty ### view subd start ### # basic information # f=0047 et=3698 sub_typ=analog lcls=indv chrg_cls=ama chrg_an=0 an=0 bnw=com tpad=0.0 rpad=-6.0 rc_org=1 rc_trm=0 chrg_ccls=nctl lctl=nctl st=trmv //total=1 В общем виде >view f=.... параметры......... //total=1 Нужно в зависимости от параметров f вывести в новый файл инструкции последовательно для каждой переменной содержащие ее значение. В общем виде для первой записи т.к sc=clip Нужно вывести в новый файл can f=0784 sc=clip reg f=0784 st_ope=trmv can f=3698 sc=cw где f=0784 значение функции can sc=clip действия и так для каждой f Пожалуйста, помогите! |
|
#8
|
|||
|
|||
|
Ничего не понял из твоего объяснения
![]() |
|
#9
|
|||
|
|||
|
Здравствуйте мастера. Подсткажите пожалуйста возможно ли скопировать файлы по дате? К примеру на форме есть компонента DateTimePicker и кнопка копировать. Выбираем дату в DateTimePicker, нажимаем копировать и файлы к примеру из папки C:\1\*.cm копируются (при этом у файлов меняется расширение) в папку D:\2\*.txt. Возможно ли это? Спасибо большое за ответы.
|
|
#10
|
|||
|
|||
|
Здравствуйте мастера. Подсткажите пожалуйста возможно ли скопировать файлы по дате? К примеру на форме есть компонента DateTimePicker и кнопка копировать. Выбираем дату в DateTimePicker, нажимаем копировать и файлы к примеру из папки C:\1\*.cm копируются (при этом у файлов меняется расширение) в папку D:\2\*.txt. Возможно ли это? Спасибо большое за ответы.
|
|
#11
|
|||
|
|||
|
Цитата:
Что никто не знает как это сделать?? ![]() |
|
#12
|
|||
|
|||
|
мастера подсткажите пожалуйста это пример заменяет определенные значения на другие, но вот в чем проблема условие может быть только одно..... как сделать 3 и более условий для замены? Спасибо.
Код:
var
sl: TStringList;
begin
sl := TStringList.Create;
if fileexists ('C:\1.txt')then sl.LoadFromFile('C:\1.txt');
for i := 0 to sl.Count - 1 do
sl[i] := StringReplace(sl[i], 'г:', '', [rfReplaceAll]);
sl.SaveToFile('C:\1.txt');
sl.Free;Последний раз редактировалось Admin, 29.04.2009 в 10:34. |