Показать сообщение отдельно

  #4  
Старый 03.11.2009, 12:33
Пуховой
Banned
Регистрация: 25.11.2007
Сообщений: 62
С нами: 9715564

Репутация: 89
По умолчанию

.ATK, регуляркой и выдираю Но письма на разных языках идут, всех признаков не знаю

Функция проста:
Код:
function check_password (mess : tidmessage) : widestring;
var
  s : widestring;
begin
  Result := 'false';
  if mess.CharSet = 'UTF-8' then s := utf8toansi (mess.Body.GetText);
  if extract (s, 'password\sis:\s*[^\r\n]*[^\r\n]') <> '' then Result := deletestr (extract (s, 'password\sis:\s*[^\r\n]*[^\r\n]'), 'password is: ');
  if extract (s, 'пароль:\s*[^\r\n]*[^\r\n]') <> '' then Result := deletestr (extract (s, 'пароль:\s*[^\r\n]*[^\r\n]'), 'пароль: ');
end;
Но она понимает только русский, английский, украинский языки. Как вариант, можно попробовать привязаться к двоеточию...

Привязал, сейчас выложу новый билд:
Код:
function check_password (mess : tidmessage) : widestring;
var
  s : widestring;
begin
  Result := 'false';
  if mess.CharSet = 'UTF-8' then s := utf8toansi (mess.Body.GetText);
  if extract (s, ':\s*[^\r\n]*[^\r\n]', 0) <> '' then Result := deletestr (extractproxy (s, ':\s*[^\r\n]*[^\r\n]', 0), ': ');
end;
Treу, со всеми распространенными. С нераспространенными также пытается работать (и довольно успешно, надо сказать).

Последний раз редактировалось Пуховой; 03.11.2009 в 12:51..
 
Ответить с цитированием