Я столкнулся с некоторыми проблемами, чтобы получить конкретные данные из необработанных данных (странный файл журнала когда-либо). В основном мне нужно получить результаты измерения SerialNumber +, например:
Выходной файл: results.txt Содержимое файла: 123456789124,1.521978E-04 (те же результаты для более чем 100 файлов).
{@BTEST|123456789124|06|191016115628|000045|0|all||n|n|191016115713||002|32145698712
{@BLOCK|2%c407|01
{@A-CAP|1|+1.521978E-04{@LIM3|+1.267300E-04|+1.520760E-04|+1.013840E-04}}
{@RPT|DEVICES IN PARALLEL}
{@RPT|c436 47.0u}
{@RPT|c408 10.0u}
{@RPT|c409 10.0u}
{@RPT|c412 10.0u}
{@RPT|c420 10.0u}
{@RPT|c500 10.0u}
{@RPT|c502 10.0u}
{@RPT|c503 10.0u}
{@RPT|c580 10.0u}
{@RPT|c427 4.70u}
{@RPT|c702d 4.70u}
{@RPT|c712d 4.70u}
{@RPT|c750 4.70u}
{@RPT|c515 1.00u}
{@RPT|c516 1.00u}
{@RPT|c560 1.00u}
{@RPT|c1091 1.00u}
{@RPT|c701b 330n}
{@RPT|c114 100n}
{@RPT|c405 100n}
{@RPT|c501 100n}
{@RPT|c504 100n}
{@RPT|c581 100n}
{@RPT|c700a 100n}
{@RPT|c700c 100n}
{@RPT|c701d 100n}
{@RPT|c703d 100n}
{@RPT|c704d 100n}
{@RPT|c711d 100n}
{@RPT|c751 100n}
{@RPT|c752 100n}
{@RPT|c1090 100n}
{@RPT|c1502 100n}
{@RPT|c1503 100n}
{@RPT|q380 q380%r1 57.0k}
{@RPT|q400 q400%q1 500, 100}
В данный момент я могу получить серийный номер, но у меня возникают проблемы с получением результатов измерений. Вот мой код:
static void Main(string[] args)
{
Regex regex = new Regex(@"(?<={@BTEST\|)(.*?)(?=\|)");
string LogPath = @"C:\Data\FailedLogs";
var LogDBSNResult = @"C:\results1.txt";
List<string> fileNames = new List<string>(Directory.GetFiles(LogPath));
List<string> dbSerialNumbers = new List<string>();
using (System.IO.StreamWriter file = new System.IO.StreamWriter(LogDBSNResult))
{
foreach (var filename in fileNames)
{
string fileContent = File.ReadAllText(filename);
if (regex.IsMatch(fileContent))
{
var result = regex.Match(fileContent).ToString();
// Adding the results in the list
dbSerialNumbers.Add(result);
Console.WriteLine("Found: " + result);
file.WriteLine(result);
}
}
//List<string> removeDuplicated = dbSerialNumbers.Distinct().ToList();
//foreach (var value in removeDuplicated)
//{
// file.WriteLine(value);
//}
}
}