Мне нужно открыть файл, прочитать строку и, если эта строка соответствует некоторым условиям, записать ее в другой файл, строка, которую я читаю, является обычной строкой ASCII, представляющей значения HEX, и мне нужно вставить ее в новыйфайл как значения HEX, а не как строка ASCII.
У меня есть следующее:
private void Button_Click(object sender, RoutedEventArgs e)
{
byte[] arrayByte = { 0x00 };
var linesToKeep = File.ReadLines(fileName).Where(l => l.Contains(":10"));
foreach (string line in linesToKeep)
{
string partialA = line.Substring(9);
string partialB = partialA.Remove(partialA.Length - 2);
arrayByte = ToByteArray(partialB);
using (var stream = new FileStream(fileName+"_gugggu", FileMode.OpenOrCreate))
{
FileInfo file = null;
file = new FileInfo(fileName + "_gugggu");
stream.Position = file.Length;
stream.Write(arrayByte, 0, arrayByte.Length);
}
}
}
public static byte[] ToByteArray(String HexString)
{
int NumberChars = HexString.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
{
bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);
}
return bytes;
}
Этот метод делает то, что мне нужно, но для его завершения требуются годы, исходные файлы примерно70000 строк ... Есть ли лучший способ сделать это для увеличения скорости?