0
void Button_9600Click(object sender, System.EventArgs e)
{
    //Assigning filename to text box
    string filename = textBox4.Text;
    if ((filename.Length == 0) || (!File.Exists(filename)))
    {
        MessageBox.Show("Error: Invlaid path");
        return;
    }

    string[]lines =File.ReadAllLines(filename);
    for(int i = 0; i < lines.Length; i++)
    {
        string line = lines[i].Replace("00","00:");
        //string Dquote = lines[i].Replace("\"","'");

        if(line.Contains("00 41"))
        {
            line = line.Replace("00 41","00: 41");
            //frags.Add(line.Trim());
        }

    }
    StringBuilder sb = new StringBuilder();
    string tmp = "";
    sb.AppendLine( tmp.Trim('#'));
    File.WriteAllText(filename+".9600.sdf", sb.ToString());

変換したいファイルです

41 2B 06 01 73 00 41 AB 0D 48 01 CF FC 80 CF FC 80 D8 05;
41 2B 06 03 75 00 41 AB 17 48 03 0A 0A 11 EF 05 02 14 1E 05 08 28 FF 03 50 00 7F A1 04;
41 2B 06 04 76 00 41 AB 17 48 04 00 00 7F 7F 12 00 00 00 00 00 00 69 18 03 01 05 E9 02;
41 2B 06 05 77 00 41 AB 17 48 05 01 02 14 1E 32 0A 03 64 0A 05 10 05 05 1E 32 05 A6 02;
41 2B 06 06 78 00 41 AB 17 48 06 00 19 78 03 1E 08 0F 09 1E 1E 01 01 28 14 71 00 0E 03;
41 2B 06 07 79 00 41 AB 17 48 07 00 3D 07 2B 06 0F 15 38 70 BB 14 28 96 FA 00 FA 14 06;

3番目のバイトは文字列の長さを教えてくれるので、以下のように6番目の位置に「:」を追加したい

41 2B 06 01 73 00: 41 AB 0D 48 01 CF FC 80 CF FC 80 D8 05;
4

1 に答える 1

0

これはどう:

void updatefile(string filename)
{
    char[] buffer = new char[17];
    //string tempfile = Path.GetTempFileName();
    string newfile = filename + ".9600.sdf";

    //use tempfile and uncomment lines to replace the existing file.
    StreamWriter writer = new StreamWriter(newfile); 

    StreamReader reader = new StreamReader(filename);
    while (!reader.EndOfStream)
    {
        writer.Write(buffer, 0, reader.Read(buffer, 0, 17));
        writer.Write(":");
        if (!reader.EndOfStream)
            writer.WriteLine(reader.ReadLine());
    }
    writer.Close();
    reader.Close();
    //File.Copy(tempfile, filename, true);
    //File.Delete(tempfile);
}
于 2013-09-11T10:55:54.110 に答える