powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите распарсить файлик!
11 сообщений из 11, страница 1 из 1
Помогите распарсить файлик!
    #38860906
kostik88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется лог, вида
<

00000:00038:2014/07/08 14:40:36.37 Logon Login failed. User: vasia, Client IP address: '192.16.0.5'.
8:00000:00040:2014/07/08 14:46:51.33 Logon Login failed. User: ivanov, Client IP address: '192.20.1.107'.

>

Как распарсить строку, когда нету разделителей, и шаблоны не получается сделать, так как
в первой строке
00000:00038:
а уже во второй
8:00000:00040:

Ну и та же петрушка с IP-адресом, нету постоянной длинны, что ли .

в идеале хочется получить данные в таблице, вида:

<

2014/07/08 14:40:36.37 Logon Login failed. User: vasia 192.16.0.5
2014/07/08 14:46:51.33 Logon Login failed. User: ivanov 192.20.1.107

>

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38860921
kostik88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Парсить планировал средствами ms sql
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38860987
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kostik88,

1) Сначала строки до пробела - 8:00000:00040:2014/07/08, убрать из строки, оставив окончание
1а) Из полученной строки - с конца строки до двоеточия - твоя дата
2) Сначала строки до пробела - 14:40:36.37, убрать из строки оставив окончание
3) С конца строки до пробела - '192.16.0.5', убрать из строки, оставив начало
4) Все что осталось - Logon Login failed. User: vasia, Client IP address:

Т.е. по факту тебе нужны charindex(),reverse(),replace(),rigth(),left(),substring() - все в твоих руках.
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861040
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Что такое "Средствами MSSQL" - SSIS?

kostik8800000:00038:2014/07/08 14:40:36.37 Logon Login failed. User: vasia, Client IP address: '192.16.0.5'.

http://www.purplefrogsystems.com/blog/2011/07/pattern-matching-in-ssis-using-regular-expressions-and-the-script-component/

И регулярное выражение типа
Код: c#
1.
@"(^\S+):([^:]+) (\S+).*User: (\s+), Client IP address '(.*)'$"@
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861064
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что вообще МОЖЕТ содержаться в строке? в каком месте? с какими разделителями? что может быть пропущено, а что нет? если есть полное знание по этим моментам - разделение на отдельные фрагменты такой строки совершенно элементарная вещь. Просто надо сформировать чёткие критерии определения, что есть ху, а потом закодить это. Но если формат таков, что при просмотре невозможно понять, чем является некий фрагмент строки - то и закодить это невозможно.

И вообще... что есть в твоём понимании "распарсить"? как ни странно, но из вопроса это неясно. А главное - непонятно, за каким хреном это делается и как потом используется.
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861096
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костик ну что за билиберда - 00000:00038:

Как на нее написать регексп? Если мы не знаем что там может быть еще. Какие символы e.t.c.
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861106
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kostik88в идеале хочется получить данные в таблице, вида:

<

2014/07/08 14:40:36.37 Logon Login failed. User: vasia 192.16.0.5
2014/07/08 14:46:51.33 Logon Login failed. User: ivanov 192.20.1.107

>


Найти в строке фрагмент '2014'. Удалить всё что до него. Удалить из строки кавычки. И всё... делов-то. Можно даже регэкспы не учить, ограничиться строковыми функциями, коих надо ровно три штуки.
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861116
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinakostik88в идеале хочется получить данные в таблице, вида:

<

2014/07/08 14:40:36.37 Logon Login failed. User: vasia 192.16.0.5
2014/07/08 14:46:51.33 Logon Login failed. User: ivanov 192.20.1.107

>


Найти в строке фрагмент '2014'. Удалить всё что до него. Удалить из строки кавычки. И всё... делов-то. Можно даже регэкспы не учить, ограничиться строковыми функциями, коих надо ровно три штуки.
Занятие увлекательное.

А в тексте месседжа может встретится что угодно. В т.ч. и "User:"...
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861143
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kostik88,

Требуйте долива пива после отстоя пены спецификацию входных данных
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861167
kostik88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

это уже отфильтрованный фрагмент лог-файла.
остальные строки содержат тоже самое, только с другими датами, логинами и ip, ну и время разное.
всё.
...
Рейтинг: 0 / 0
Помогите распарсить файлик!
    #38861375
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kostik88Парсить планировал средствами ms sql
ИМХУ неподходящий инструмент для данной задачи.

Проще написать на каком-нибудь алгоритмическом ЯП парсер, а результат его работы заливать в MS SQL, построчными insert`ами или пачками (bulk insert).
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите распарсить файлик!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]