매우 특별한 방법으로 구조화 된 은행의 파일이 있습니다. 계좌 번호 (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
-
항상 각 블록 사이에 2 줄의 끊김이 있습니다. 내가 만든 객체에 그 블록을 넣고 싶습니다.
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 –
아, 전이 형식을 좋아합니다. 줄이 구분되지 않고 임의의 인코딩으로 고정 너비 필드가 포함되어있는 경우에도 ... – AKX