Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2010, 21:42   #1
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию Обработка интернет логов

ув знатоки. Есть файл с логами интернет статистики. для примера вот строка
Код:
[2010-01-04 02:04:31] 192.168.1.16 SERVER HTTP GETCache http://dnl-02.geo.kaspersky.com/index/6/u0607g.xml.dif 
[2010-01-04 10:07:34] 192.168.1.14 KATYA HTTP GETCache http://server/favicon.ico 404 Not Found
может кто знает или когда нить писал что нить подобное, для разбора больших таких голов?
дата, время, имя компа, IP-компа, и желательно только адрес сервера, а не всю строку иннет сссылки (в конце название странички - не требуется).
Есть идеи? подкинте...
К стати, это лог от программы CCProxy

С уважением, Денис
iskurt вне форума Ответить с цитированием
Старый 04.01.2010, 22:00   #2
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию

Используй функции Pos и Copy. Разделителем у тебя служит пробел.
BioHEX вне форума Ответить с цитированием
Старый 04.01.2010, 22:03   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

tstringlist и delimiter, DelimitedText.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 04.01.2010, 23:00   #4
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Спасибо, отличные подсказки
iskurt вне форума Ответить с цитированием
Старый 05.01.2010, 14:34   #5
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

не могу сообразить как в середине строки искать пробелы?
Код:
fIP := Copy(s,23,pos(s,' '));
то естессно он и не доходит до нужного мне места... посоветуйте...
iskurt вне форума Ответить с цитированием
Старый 05.01.2010, 17:59   #6
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию

Не правильно используешь Pos, надо:
Код:
Pos(' ',str);
Для твоего случая код будет выглядеть так:
Код:
Str:=Copy(str,Pos(' ',str)+1,Length(str));
 Time:=Copy(Str,0,Pos(' ',Str)-2); //-2 т.к. скобка нам не нужна

 Str:=Copy(Str,Pos(' ',Str)+1,Length(Str));
 IPstr:=Copy(Str,0,Pos(' ',Str)-1);
...
Но лучше используй tstringlist и delimiter, DelimitedText, как советовал тебе raxp

Вот простейший вариант:
Код:
var
 Str:TStringList;
 i:Integer;
begin
 Str:=TStringList.Create;
 Str.Text:=Memo1.Text;

 Str.QuoteChar:= ' ';
 Str.DelimitedText:=Memo1.Text;

 for i:=0 to Str.Count-1 do
  Memo2.Lines.Add(str[i]);

 str.Free;
end;

Последний раз редактировалось BioHEX; 05.01.2010 в 18:31.
BioHEX вне форума Ответить с цитированием
Старый 05.01.2010, 23:13   #7
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Я рылся в иннете, но так и не нашел описание что же делает свойство DelimitedText... блин, подкиньте ссылку, если есть у кого
iskurt вне форума Ответить с цитированием
Старый 05.01.2010, 23:58   #8
BioHEX
Пользователь
 
Аватар для BioHEX
 
Регистрация: 04.01.2010
Сообщений: 17
По умолчанию

Cвойство DelimitedText
Получает или устанавливает список через большую строку. Эта строка содержит список строк разделенных значением Delimiter (по умолчанию - запятая). Строки, содержащие вложенные пробелы должны быть заключены в QuoteChar (по умолчанию - ").

Свойство QuoteChar
Используется для замыкания строк, которые имеют вложенные пробелы при использовании DelimitedText.

Свойство Delimiter
Используется для разделения строк при использовании DelimitedText
BioHEX вне форума Ответить с цитированием
Старый 06.01.2010, 00:06   #9
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

опоздал
Справка Delphi
Цитата:
Represents all the strings in the TStrings object as a single delimited string.

Delphi syntax:

property DelimitedText: string;

C++ syntax:

__property AnsiString DelimitedText = {read=GetDelimitedText, write=SetDelimitedText};

Description

Use DelimitedText to get or set all the strings in the TStrings object in a single string.

When reading DelimitedText, the resulting value delimits individual strings in two ways: each string is surrounded (before and after) by the quote character specified by the QuoteChar property. In addition, individual strings are separated by the character specified by the Delimiter property.

When writing DelimitedText, individual strings must be separated using QuoteChar at both ends, using Delimiter as a separator, or using both these methods.

Note: CommaText is the same as the DelimitedText property when Delimiter is ',' and QuoteChar is '"'.
Что переводится примерно так:
Цитата:
Представляет все строки в TStrings раздельно.

Delphi syntax:

property DelimitedText: string;

C++ syntax:

__property AnsiString DelimitedText = {read=GetDelimitedText, write=SetDelimitedText};

Описание

Используйте DelimitedText для получения или задания(установки) всех строк в TStrings по отдельности.

При чтении DelimitedText, результатом становится значения разделенных строк в двух вариантах(двумя способами): каждая строка разделена на две части (до и после) разделителя, символ который устанавливается свойством QuoteChar. Также, отдельные строки разделяются символом установленным в свойство Delimiter.
При записи DelimitedText, отдельные строки должны быть разделены с использованием свойства QuoteChar с обоих сторон, используйте Delimiter как разделитель или используйте оба этих метода.
Примечание: CommaText тоже, что и свойство DelimitedText, где Delimiter это ',', а QuoteChar - ''''.
P.S. Английский я знаю не очень, поэтому сильно не бейте

Последний раз редактировалось psycho-coder; 06.01.2010 в 00:08.
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка логов в Postfix MarinaOlegovna Помощь студентам 1 30.07.2009 15:36
интернет S82 Помощь студентам 2 06.02.2009 21:53
Интернет Д'якон Безопасность, Шифрование 2 07.01.2009 08:26
БД и интернет Grid64 Помощь студентам 1 23.09.2008 14:21
Интернет Terran Win Api 3 15.01.2008 19:40