У меня есть файл из банка, который является структурой очень особым образом. Если есть номер счета (25), начало сальдо счета (60F), остановка остатка на счете (62F) и транзакции (61 для транзакции и 86 для этой транзакции).Прочитайте весь файл в блоках в C#
:20:STARTSUM
:25:/PL2321109943011
:28C:0330/001
:60F:C100PLN38,74
:62F:C103PLN38,74
-
:20:STARTSUM
:25:/PL24160011982002123456001
:28C:0403/001
:60F:C030403PLN36000,00
:61:0304030403CN100,00S723NONREF//CENT30403H000200
:86:723>00PRZELEW OTRZYMANY ELIXIR>20Fakt VAT 1 nr 00911/03
:86:723>3010501445>3125-00001201467436
:86:723>32Firma XXXXXXXXXXă>33Krakow
:61: 0304030403DN1000,00S223NONREF//CENT30403H002342
:86:223>00PRZEL KRAJ MULTICASH>20000004020 20021224 Fa. 0095
:86:223>21007203-FIRMA SP. Z O>308510101010>31123456789
:86:223>32FRIMA XXXXXXXXXX UL. GNI>33EZNIENSKA 1
:86:223>38851010101
:86:223>60851010101
:61:0304030403CN100,00S723NONREF//CENT30403H000230
:86:723>00PRZELEW OTRZYMANY ELIXIR>20Fakt VAT 1 nr 00911/03
:86:723>308510101010>31123456789
:86:723>32Firma XXXXXXXXXXă>33Krakow
:86:223>38851010101
:86:223>60851010101
:62F:C030403PLN35200,00
-
:20:STARTSUM
:25:/PL2321109944011
:28C:0330/001
:60F:C120330PLN43,45
:62F:C120330PLN43,45
-
:20:STARTSUM
:25:/PL1109945011
:28C:0330/001
:60F:C1230PLN3,50
:62F:C1230PLN3,50
-
У него всегда есть две линии разрывов между каждым блоком. Я хотел бы поместить эти блоки в объект, который я создаю.
string[] test = File.ReadAllLines(file);
foreach (var s in test) {
}
Как я могу подойти к нему надлежащим образом? Обычно я бы пошел по линии foreach
и попытался разделить блоки пустыми 2 строками, а затем продолжить, выполняя несколько операторов if/else. Но, может быть, есть простой/лучший подход к этому?
Некоторые из ответов на [этот вопрос] (http://stackoverflow.com/questions/1562021/filereader-class-in-c-sharp) поможет вам близко. –
Вы можете посмотреть этот пост http://stackoverflow.com/questions/5880401/swift-message-parsing-for-net –
Ahhh, мне просто нравятся эти устаревшие форматы. Еще лучше, когда строки не ограничены, но содержат поля фиксированной ширины в некотором произвольном кодировании ... – AKX