c#文本文件排序

本文关键字:排序 文件 文本 | 更新日期: 2023-09-27 18:18:08

我有一个关于如何排序文本文件的问题。我有一个srec文件,在通过COM1发送之前,我需要对它进行排序。因此,在打开或发送之前,我需要对文件进行排序。

下面是我的srec文件的一个例子:

S2140338BE0E0606510004008D15FE915115FE9191CCS2140338CE04008D15FE9006010242C78C0AB79C04AFS2140338DE008D15FE91D6C78C0AB79C04088D1D0065S2130338EE1A16270704088D1D001A0CC78C11190C
S20C038E880000000000000D23AA
S2100202C000033403000336C3000338DBDFS2140347C0045C3F0510060504008D15FEFC1304006BS2140347D08D15FEFD060104008D15FE80068304007CS2140347E08D15FE821304008D15FE8806FF04008DCAS2140347F015FE8906FF04008D15FE8E060104008D46

这是源代码:

StringList list = new StringList().FromFile(appfile.FileName);
        // Read file and put it in a list
        foreach (String line in list)
        {
            serialPort1.Write(line);
        }
        MessageBox.Show("Bootfile and Applicationfile are send succesfully.");

c#文本文件排序

虽然您可以使其复杂化,但如果文件的大小合理(例如,它不是一个大的文件),因此它可以很容易地保存在内存中,它应该像这样简单:

var lines = File.ReadAllLines("{PathToFile}");
lines.Sort();
File.WriteAllLines("{PathToFile}", lines);

,其中{PathToFile}是文件的完全限定物理路径。

这里ReadAllLines返回一个string[], WriteAllLines写回一个string[]

此外,正如Jim Mischel提出的,另一个选项是这样的:

File.WriteAllLines(filename, File.ReadLines(filename).OrderBy(s => s));
这种方法的主要好处是代码更优雅。

使用

List<string> list;

读取每行直到行尾,然后将其添加到列表中。然后对列表进行排序。最好的方法,在linq技巧之后,我想。