Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Делфи и регулярные выражения, Delphi 6 
:(
    Опции темы
Matematik
Дата 24.5.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Код

var
  f      : TStringList;    
  Result : String;    
  i      : integer;    
  s      : string;    
begin    
  OpenDialog1.Execute;    
  r := TRegExpr.Create;    
  f := TStringList.Create;    
  f.LoadFromFile(OpenDialog1.FileName);    
  r.Expression := expr;    
  Result := '';
  for i:=0 to f.count-1    do    
  begin    
    if r.Exec(f[i]) then
    REPEAT    
      Result := Result + r.Match[0] + ',';    
    UNTIL not r.ExecNext;
  end;    
  f.Free;
  r.Free;
end;



По идее код должен работать  

Это сообщение отредактировал(а) Matematik - 24.5.2006, 11:06
PM MAIL WWW ICQ   Вверх
Berliner
Дата 2.6.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Здраствуйте, этот код работает спасиб.
 
Код

var
  f      : TStringList;
  Result : String;
  i      : integer;
  s      : string;
  expr   : string;
begin

  OpenDialog1.Execute;
  r := TRegExpr.Create;
  f := TStringList.Create;
  f.LoadFromFile(OpenDialog1.FileName); 
  expr:='" c<   \: '+Edit1.Text;
  r.Expression := expr;
  Result := '';
  for i:=0 to f.count-1    do
         begin
         if r.Exec(f[i]) then
         REPEAT
         Result := Result + r.Match[0] + ',';
         ShowMessage(Result);
         UNTIL not r.ExecNext;

  end;

  f.Free;
  r.Free;

end;




Но я нахожу например только одну строку в моем случае это имя файла. А мне надо найти и другую информацию(время когда файл упакован, время когда получен отчет) ищу по имени файла которое ввожу в поле  Edit подскажите плиз как это сделать.



Вот текст еоторый я разбираю

Цитата

[ Упаковано  : 10:09:30 ]    --время упаковки файла
 ---------------------------------------
  ФПК    : C:\FOSSMAIL32\QUEUE\ki82bd6c.kad
  Из дир : S:\USAA\IN\
  Ид     : U~20060503100930AAXLH3MKMGEWEYP
  Тема   : Oт USA0 k U0AD
  От     : C:UA/ADMD:PIBFMAIL/PRMD:SUMY/ORG:USA0/OU:USA0/PN:USA0
  Кому   : C:UA/ADMD:PIBFMAIL/PRMD:KIEV/ORG:U0A0/OU:U0AD/PN:U0AD
  Файл   : U0ADUSAA.BPX                       3016      28.04.2006 17:40:06                   --имя файла
  ---------------------------------------

[ Распаковано : 10:09:40 ]
  ---------------------------------------
  ФПК    : A32B235.Fpk     1122   03.05.2006 10:09:38
  В дир  : S:\USAA\OUT\
  Ид     : U~20060503101035AFTXWVF5I2EA3XK
  От     : C:UA/ADMD:PIBFMAIL/PRMD:KIEV/ORG:U0A0/OU:U0T0/PN:U0T0
  Кому   : C:UA/ADMD:PIBFMAIL/PRMD:SUMY/ORG:USA0/OU:USAA/PN:USAA
  Файл   : USAAU0T0.XVU                       674       03.05.2006 10:10:00
  ---------------------------------------
Сформирован отчет

[ Распаковано : 10:09:40 ]
  ---------------------------------------
  ФПК    : 408AC86.Fpk     3231   03.05.2006 10:09:38
  В дир  : S:\USAA\OUT\
  Ид     : U~20060503101031ADTXWVF5I2EA3XK
  От     : C:UA/ADMD:PIBFMAIL/PRMD:KIEV/ORG:U0A0/OU:U0T0/PN:U0T0
  Кому   : C:UA/ADMD:PIBFMAIL/PRMD:SUMY/ORG:USA0/OU:USAA/PN:USAA
  Файл   : USAAU0T0.OBH                       2783      03.05.2006 10:09:58
  ---------------------------------------
Сформирован отчет

[ Распакован отчет  : 10:10:00 ] --время получения отчета
  ---------------------------------------
  ФПК    : 7663927.Fpk     634   03.05.2006 10:09:58
  Ид     : U~20060503100930AAXLH3MKMGEWEYP
  От     : C:UA/ADMD:PIBFMAIL/PRMD:KIEV/ORG:U0A0/OU:U0AD/PN:U0AD
  Кому   : C:UA/ADMD:PIBFMAIL/PRMD:SUMY/ORG:USA0/OU:USA0/PN:USA0
  Файл   : U0ADUSAA.BPX                       3016      28.04.2006 17:40:06    -- имя файла 
  RCODE  : 0
  ERCODE : 0
  ---------------------------------------


  

Это сообщение отредактировал(а) Berliner - 2.6.2006, 11:52
PM   Вверх
Romikgy
Дата 7.6.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Berliner, а как должно в конце выйти? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Berliner
Дата 7.6.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Извините непонял
Цитата

как должно в конце выйти?


 
PM   Вверх
Yanis
Дата 7.6.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Berliner @  7.6.2006,  14:56 Найти цитируемый пост)
Извините непонял

С позволения Romikgy перефразирую, если я правильно понял пост (7.6.2006, 13:41).
Цитата
Ты разбираешь текст. В оригинальном варианте мы его видели, а что должно в конце выйти?
 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Berliner
Дата 8.6.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



я должен найти по имени файла(файл буду вводить в текстовое поле)

1 [ Упаковано  : 10:09:30 ]    


2 [ Распакован отчет  : 10:10:00 ] 

3  От     : C:UA/ADMD:PIBFMAIL/PRMD:KIEV/ORG:U0A0/OU:U0AD/PN:U0AD

4  Кому   : C:UA/ADMD:PIBFMAIL/PRMD:SUMY/ORG:USA0/OU:USA0/PN:USA0

эти данные мне нужно найти, по названию файла, более детальный фрагмент текста выше.

например записать данную инфу в строковые переменные. 
PM   Вверх
Romikgy
Дата 8.6.2006, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Код

procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
    i: longint;
begin
Memo1.Clear;
  sl:=TStringList.Create;
  sl.LoadFromFile('d:\regexp.txt');
  try
  if sl.Count<>0 then
  for i:=0 to sl.Count-1 do
  begin
  if (pos('Упаковано',sl[i])>0) then
  Memo1.Lines.Add(sl[i]);
  if (pos('Распаковано',sl[i])>0) then
  Memo1.Lines.Add(sl[i]);
  if (pos('От',sl[i])>0) then
  Memo1.Lines.Add(sl[i]);
  if (pos('Кому',sl[i])>0) then
  Memo1.Lines.Add(sl[i]);

  end;
  finally
  sl.Free;
  end;
end;

так не?  

Это сообщение отредактировал(а) Romikgy - 8.6.2006, 11:38


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Berliner
Дата 29.6.2006, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Спасиб за приведенный код но он ищет не то а мне надо:

я должен найти по имени файла(файл буду вводить в текстовое поле)

1 [ Упаковано  : 10:09:30 ]    


2 [ Распакован отчет  : 10:10:00 ] 

3  От     : C:UA/ADMD:PIBFMAIL/PRMD:KIEV/ORG:U0A0/OU:U0AD/PN:U0AD

4  Кому   : C:UA/ADMD:PIBFMAIL/PRMD:SUMY/ORG:USA0/OU:USA0/PN:USA0

эти данные мне нужно найти, по названию файла, более детальный фрагмент текста выше.

например записать данную инфу в строковые переменные.

Код



  var
  f      : TStringList;
  Result : String;
  i      : integer;
  s      : string;
  expr   : string;
begin
  OpenDialog1.Execute;
  r := TRegExpr.Create;
  f := TStringList.Create;
  f.LoadFromFile(OpenDialog1.FileName); 
  expr:='" c<   \: '+Edit1.Text;
  r.Expression := expr;
  Result := '';
  for i:=0 to f.count-1    do
         begin
         if r.Exec(f[i]) then
         REPEAT
         Result := Result + r.Match[0] + ',';
         ShowMessage(Result);
         UNTIL not r.ExecNext;
  end;
  f.Free;
  r.Free;
end;

 
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.