Как мне читать .Файлы ETL в .Net?

#c# #.net #etl

#c# #.net #etl

Вопрос:

Как мне читать .Файлы ETL в .Net? Я хочу увидеть свой etl-файл в виде списка, но я не могу проанализировать содержимое файла, поскольку это не ascii.

Ответ №1:

Неважно, я выяснил это с помощью различных поисковых запросов Google. вот как я это сделал:

     //Init
    System.Diagnostics.Process worker = new System.Diagnostics.Process();
    //Start logging
    worker.StartInfo.FileName="logman";
    worker.StartInfo.Arguments="start MyTcpipLog -p Microsoft-Windows-TCPIP -ets";
    worker.Start();
    worker.WaitForExit();
    //Do nothing for 30 seconds
    DateTime start = DateTime.Now;
    while(DateTime.Now.Subtract(start).Seconds<5){}
    //Stop logging
    worker.StartInfo.FileName="logman";
    worker.StartInfo.Arguments="stop MyTcpipLog -ets";
    worker.Start();
    worker.WaitForExit();
    //Convert .etl to .csv
    worker.StartInfo.FileName="tracerpt";
    worker.StartInfo.Arguments = """ System.IO.Path.GetDirectoryName(Application.ExecutablePath) "\MyTcpipLog.etl" -o "" System.IO.Path.GetDirectoryName(Application.ExecutablePath) "\MyTcpipLog.csv"";
    worker.Start();
    worker.WaitForExit();
    //Load CSV into memory
    // create reader amp; open file
    System.IO.TextReader tr = new System.IO.StreamReader("MyTcpipLog.csv");
    string data = tr.ReadToEnd();
    tr.Close();
    //Delete CSV
    System.IO.File.Delete("MyTcpipLog.etl");
    System.IO.File.Delete("MyTcpipLog.csv");
  

Комментарии:

1. примет это как мой ответ, когда SO позволит мне (говорит, что мне нужно подождать 2 дня)

2. кстати, на самом деле это не csv, больше похоже на xml, что лучше : D

Ответ №2:

Вероятно, вы могли бы использовать P / Invoke и функции WinAPI OpenTrace и ProcessTrace. Смотрите MSDN для получения некоторого примера кода на C.

Комментарии:

1. P / Invoke позволяет вызывать функции Win32 из . СЕТЕВОЙ код. Примеры покажут, какие функции вам нужно будет вызвать…