![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добрый вечер уважаемые мастера! Прошу помочь разобраться.
Delon © (2007-06-21 18:51:00)Есть у меня текстовый файл с огромной кучей строк. Вот одна из многих (пример). 2007:05:18-00:13:51 (none) exim[31310]: 2007-05-18 00:13:51 1HolQ7-000890-GW <= <> R=1HolQ7-00088t-9c U=exim P=local S=1823. Как мне вытащить из строки дату и время если в строке присутствует символ <=.
Вот код но не могу я в нем найти ошибку.
Var
str,date,str1:String;
k,i,d,c:integer;
begin
i:=0;
while (i<Memo1.Lines.Count) do
begin
str :=Memo1.Lines[i];
k:= Pos('=>',str);
if k > 0 then str1 := copy(str,k-37,19);
begin
date:=copy(Memo1.Lines[k],i-2,19);
memo1.Lines.CommaText:=date;
inc(c);
end;
inc(i);
end;
Павел Калугин (2007-06-22 10:06:00) [1]Все строки одинаково отформатированы?
дата всюду в одмнаковом формате?
Цитата прямо из соседней ветки.
http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Delphi/Podgoretsky/PasFiles.html&file_id=app-files
Все ждетально, подробно описано
Delon (2007-06-21 19:44:00) [2]вообще сам код висячный. что-то не так ...??
> while (i<Memo1.Lines.Count) do
> begin
> str :=Memo1.Lines[i];
> k:= Pos('=>',str);
>
> if k > 0 then
> str1 := copy(str,k-37,19);
>
???????????????7
гостъ (2007-06-21 19:37:00) [3]хммм...RTFM
> да вообще я хотел бы выбранные даты засунуть в другое Memo
if k > 0 then
Memo2.Lines.Add ( copy ( str, k - 37, 19 ) ); // copy ( str, 1, 19 ) ???
Delon (2007-06-21 19:30:00) [4]
> strlst.USAGE
> ...
> strlst.Free;
а это что такое?
да вообще я хотел бы выбранные даты засунуть в другое Memo
гостъ (2007-06-21 19:23:00) [5]Ну она же (дата) уже выбрана в условии
if k > 0 then
str1 := copy(str,k-37,19);
В str1 строка с датой
Что нужно дальше? Сохранить все даты где-нибудь? = TStringList
TStringList strlst;
...
strlst := TStringList.Create ();
...
if k > 0 then
strlst.Add ( copy ( str, k - 37, 19 );
...
strlst.USAGE
...
strlst.Free;
Нет дельфи под руками, может где и ошибся, но примерно так.
Delon (2007-06-21 19:07:00) [6]ну да понаписал я наверное фигню, но что тут не так.......??????? не пойму.
> begin // ???
>
> date:=copy(Memo1.Lines[k],i-2,19);
> memo1.Lines.CommaText:=date;
>
> inc(c); // ???
да это наверное чуш...., но.... Help me!
гостъ (2007-06-21 19:03:00) [7]Впинду... это даже отформатированное читать забодаешься... :(
порукамлинейкой
var
str,date,str1:String;
k,i,d,c:integer;
begin
i:=0;
while (i<Memo1.Lines.Count) do
begin
str :=Memo1.Lines[i];
k:= Pos('=>',str);
if k > 0 then
str1 := copy(str,k-37,19);
begin // ???
date:=copy(Memo1.Lines[k],i-2,19);
memo1.Lines.CommaText:=date;
inc(c); // ???
end;
inc(i);
end;
Delon (2007-06-21 18:55:00) [8]а ну да. с символами перепутал, но все равно это не работает.
гостъ (2007-06-21 18:53:00) [9]
> символ <=.
> k:= Pos( '=>',str);