Я решил, что обходной путь решит мою проблему и продолжит изучение позже...
Очень неприятно видеть, как легко это делается в AutoIt и Phantom Test Driver (именно это я и использовал).
[Веб-сайт удален, изменен.]
По сути, у меня была «тонна» дисков с файлами .dtb, а точнее 542.
Я знаю, что это упрощенно, и я только написал суть того, что я сделал, чтобы решить. Эти файлы имеют проприетарный формат, требующий использования программного обеспечения Teradyne, насколько мне известно, для использования этого программного обеспечения не существует сценариев или метода командной строки.
Я не уверен, что в итоге использовал все эти сборки, но вот список:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Runtime.InteropServices;
Моей первой задачей было найти все файлы .dtb на компакт-диске и перенести их в рабочую папку, сохранив структуру папок. (Потому что в разных папках были одинаковые имена файлов) Для этого я использовал Beyond Compare.
Эта папка становится базовой папкой lblDrive.txt. Он фактически включает в себя весь путь.
string[] rawInput = Directory.GetFiles(lblDrive.Text, "*.dtb*", SearchOption.AllDirectories);
//lblDTBFilesFound
int dtbCount = 0;
foreach (string s in rawInput)
{
lstFilesList.Items.Add(s.ToString());
dtbCount++;
}
lblDTBFilesFound.Text = "DTB Files Found: " + dtbCount.ToString();
// создать список всех файлов .dtb, включая их полный путь. // количество файлов можно использовать позже, чтобы убедиться, что вы преобразовали все файлы.
Перебрать список, копируя каждую запись в wrkString, которая представляет собой полный путь к файлу .dtb.
Clipboard.SetText(wrkString.Substring(0, q));
// Копируем все, кроме расширения файла, в буфер обмена
Process.Start(wrkString); // launching proprietary software
int maybe = 0;
while (maybe < 25)
{
System.Threading.Thread.Sleep(10);
maybe++;
}
// даем небольшую задержку, чтобы убедиться, что приложение запущено
var process = Process.Start("DTB_Extraction.psc");
process.WaitForExit();
• Запускает phantom.exe (.psc, ранее связанный с phantom.exe вручную) • Сценарий выполняет движения и щелчки мыши для преобразования файла • Сценарий включает вставку из буфера обмена в сохранение файла • Принудительно ожидает завершения сценария
if(File.Exists(wrkString.Substring(0, q) + ".csv"))
{
// Do nothing
}
else
{
lstDisp.Items.Add(wrkString.Substring(0, q) + ".csv");
}
// В редких случаях что-то пошло не так и .csv не был создан
string[] rawInput = Directory.GetFiles(lblDrive.Text, "*.csv*", SearchOption.AllDirectories);
int dtbCount = 0;
foreach (string s in rawInput)
{
lstFilesList.Items.Add(s.ToString());
dtbCount++;
}
lblCSVFilesFound.Text = "CSV Files Found: " + dtbCount.ToString();
// создать список всех файлов .csv в рабочем каталоге, чтобы я мог перебирать его и извлекать нужные мне данные. // Количество файлов можно сравнивать.
person
user3279899
schedule
19.07.2017