Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добрый вечер уважаемые мастера! Прошу помочь разобраться.


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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо