PDA

Показать полную графическую версию : написать программу, чтобы она вытаскивала данные из .txt или .xls


exo
17-06-2009, 12:01
Доброго дня. Нужно состряпать программу.
Исходные данные:
- обучаемый нуб.
- Windows Server 2003.
- текстовый или файл Excel (собственно это логи Windows)
- содержимое файла вида:

5/14/2009 16:59:16 8 2 528 Security Domain\user 2009051414X user Domain (0x0,0x1AA751) 7 User32 Negotiate 2009051414X {41c28e07-b5c7-875c-91cf-a838cb8666ce} 2009051414X$ Domain (0x0,0x3E7) 428 - 127.0.0.1 0
5/14/2009 17:55:03 8 2 528 Security Domain\user 2009051414X user Domain (0x0,0x2C30E7) 7 User32 Negotiate 2009051414X {285ef8f7-9184-e096-df47-97e64e949ea8} 2009051414X$ Domain (0x0,0x3E7) 428 - 127.0.0.1 0
5/15/2009 8:46:36 8 2 528 Security Domain\user 2009051414X user Domain (0x0,0x40F1B0) 2 User32 Negotiate 2009051414X {0725f1c0-9f2d-6901-4900-6c63fce35775} 2009051414X$ Domain (0x0,0x3E7) 428 - 127.0.0.1 0
5/15/2009 9:11:07 8 2 528 Security Domain\user 2009051414X user Domain (0x0,0x47DA64) 7 User32 Negotiate 2009051414X {dfd32b7d-e1e3-5995-db5b-3cd4dd758d73} 2009051414X$ Domain (0x0,0x3E7) 428 - 127.0.0.1 0


Задача:
- научится вытаскивать из файла данные определённого содержимого.
К примеру в этом куске мне нужно найти в определённом месте число 2 или 10 и вытащить табличку со следующим содержимым:
5/14/2009 16:59:16 8 2 528 Security Domain\user 2009051414X - 127.0.0.1
в принципе и Excel с этим справляется если ставить фильтр по полям, т.к. все данные разделены табуляцией, кроме выделенного жирным. Но из выделенного жирным меня интересует лишь определённые данные (выделил красным).

вообщем посоветуйте, с каких книг начать читать?
Спасибо.

azbest
17-06-2009, 14:04
Это возможно. Нужен оригинальный пример этих данных в *.xls - формате.

exo
17-06-2009, 17:19
xls (http://exonix.ru/logon-2.xls)

автофильтр и рамку сам добавлял.

pva
23-06-2009, 11:40
обучаемый нуб. »
как у нас с VB/JS дела обстоят? можно сделать скрипт в excel (начать запись макроса), в котором импортировать текстовый файл, внести нужные изменения, сохранить куда надо. Потом макрос тупо выдернуть в файл *.vbs, причесать чтоб он эксель загружал-выгружал и вперёд...

VSyntoT
09-07-2009, 22:29
Все просто. С тхт-шным файлом работаете тупо по разделителям, т.е. грубо говоря создаете объект - сканер, который будет двигаться по вашему файлу по разделителям (в Вашем случае это определенной количество пробелов, перенос коретки и конец файла) и рассылать соответствующую информацию по структурам.
В случае с xsl Вы опять же имеете просто файл с разделителями, работаете с ним путем применения OLE DB... вот-с. Если сами с Excel'em не разберетесь, вышлю сишную библиотеку для выполнения поставленной задачи...

azbest
10-07-2009, 20:46
Экселя под рукой нет.
Если данные идут непрерывным потоком
сставляете макрос:
1)рубите весь непрерывный поток на части по датам. (цикл по если дата такая то ...)
2)внутри него - задаёте через инпутбокс - смещение в столбик с "2" или "10" - там где их нужно отлавливать.
2а) считываем из данных этого столбика первые 2 знака (2х или 10)
3)если есть 2 или 10 - запоминаем эти значения - смещаемся на столько то столбиков и считываем и запоминаем значение в столбике "IP"-адресов.
4)прыгаем на соседний лист и добавляем все это в ближайшую последнюю строчку.
Всё :yes:




© OSzone.net 2001-2012