I am developing a system that processes sequential files generated by Cobol systems, currently, I am doing the data processing using several substrings to get the data, but I wonder if there is a more efficient way to process the file than to make several substrings...
At now, I do basically:
using (var sr = new StreamReader("file.txt"))
{
String line = "";
while(!sr.EndOfStream)
{
line = sr.ReadLine();
switch(line[0])
{
case '0':
processType0(line);
break;
case '1':
processType1(line);
break;
case '2':
processType2(line);
break;
case '9':
processType9(line);
break;
}
}
}
private void processType0(string line)
{
type = line.Substring(0, 15);
name = line.Substring(15, 30);
//... and more 20 substrings
}
private void processType1(string line)
{
// 45 substrings...
}
The file size may vary between 50mb and 150mb... A small example of the file:
01ARQUIVO01CIVDSUQK 00000000000000999999NAME NAME NAME NAME 892DATAFILE 200616 KY0000853 000001
1000000000000000000000000999904202589ESMSS59365 00000010000000000000026171900000000002 0 01000000000001071600000099740150000000001N020516000000000000000000000000000000000000000000000000000000000000009800000000000000909999-AAAAAAAAAAAAAAAAAAAAAAAAA 00000000 000002
1000000000000000000000000861504202589ENJNS63198 00000010000000000000036171300000000002 0 01000000000001071600000081362920000000001N020516000000000000000000000000000000000000000000000000000000000000009800000000000000909999-BBBBBBBBBBBBBBBBBBBBBBBBBB 00000000 000003
9 000004