Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   написать программу, чтобы она вытаскивала данные из .txt или .xls (http://forum.oszone.net/showthread.php?t=142832)

exo 17-06-2009 12:01 1144924

написать программу, чтобы она вытаскивала данные из .txt или .xls
 
Доброго дня. Нужно состряпать программу.
Исходные данные:
- обучаемый нуб.
- 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 1145029

Это возможно. Нужен оригинальный пример этих данных в *.xls - формате.

exo 17-06-2009 17:19 1145228

xls

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

pva 23-06-2009 11:40 1149644

Цитата:

Цитата exo
обучаемый нуб. »

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

VSyntoT 09-07-2009 22:29 1163347

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

azbest 10-07-2009 20:46 1164218

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


Время: 03:06.

Время: 03:06.
© OSzone.net 2001-