C#文本文件输入多文件输出

Ero*_*ocM 6 c# parsing flat-file

我有一个看起来像这样的文件:

|29923C|SomeGuy,NameHere1     |00039252|042311|Some Address Info Here |
|47422K|SomeGuy,NameHere2     |00039252|042311|Some Address Info Here |
|98753D|SomeGuy,NameHere3     |00039252|042311|Some Address Info Here |
|29923C|SomeGuy,NameHere4     |00039252|042311|Some Address Info Here |
|47422K|SomeGuy,NameHere5     |00039252|042311|Some Address Info Here |
Run Code Online (Sandbox Code Playgroud)

我需要根据从位置2开始的前6个字符将文件分成多个文件.

文件1名为29923c.asc:

|29923C|SomeGuy,NameHere1     |00039252|042311|Some Address Info Here |
|29923C|SomeGuy,NameHere4     |00039252|042311|Some Address Info Here |
Run Code Online (Sandbox Code Playgroud)

文件2名为47422K.asc:

|47422K|SomeGuy,NameHere5     |00039252|042311|Some Address Info Here |
|47422K|SomeGuy,NameHere2     |00039252|042311|Some Address Info Here |
Run Code Online (Sandbox Code Playgroud)

文件3名为9875D.asc:

|98753D|SomeGuy,NameHere3     |00039252|042311|Some Address Info Here |
Run Code Online (Sandbox Code Playgroud)

我不知道在程序获取之前文件中会有什么,只是格式.6位数将根据客户的不同而有所变化.我不知道他们会是什么.

我唯一知道的是格式.

任何人都可以给我一个建议,如何动态获取\维护这些信息,以便我可以解析为单个文件?

Kyr*_*o M 1

逐行阅读。从每一行获取代码并创建文件,将以代码作为键将对打开的文件流的引用放入字典中。在下一行检查字典中的密钥并使用打开的流或创建新的流。读取所有文件后关闭所有流。

如果文件行的大小很大,则该算法将防止文件行使用过多的内存。

例如,为了解析每一行,您可以简单地使用 RegEx。