ANSI 835(テキスト)ファイルがあります。簡単にするために、次のようになります。
ISA*00
GS*Foo*12345
ST*835*000001
LX*1
CLP*123456
NM1*Lastname
REF*010101
DTM*20120512
SVC*393939
LQ*19
LX*2
CLP*23456
NM1*Smith
REF*58774
DTM*20120601
SVC*985146
LX*3
CLP*34567
NM1*Doe
REF*985432
DTM*20121102
SVC*864253
LQ*19
LQ*84
レコードはLXセグメントに分割されます。LX * 1以降はすべて1つのレコードであり、LX*2以降はすべて別のレコードです。各行から特定のアイテムを取得し、それらを変数に割り当て、最終的にそれらを行としてdatagridviewに追加する必要があります。簡単にするために、次の変数があります。それぞれに何を入れる必要がありますか。
string ItemNumber
CLP行の*の後の
string LastName
文字のグループである必要がありますNM1行の*の
string Date
後の文字のグループである必要がありますREF行の*の
string Error
後の文字のグループである必要がありますLQライン
私が直面している最大の問題は、各LXセグメントに複数のLQラインが存在する可能性があることです。その場合、2番目のエラーを最初のエラーの最後にコンマで区切って追加することができます。
ファイルを文字列配列にロードして行ごとに試しましたが、「LX * 1から始めて、LX*2に到達するまで何かを実行する」と言う方法がわかりません。
string[] lines = File.ReadAllLines(MyFile);
foreach (string line in lines)
{
string[] splitline = line.Split('*');
if (splitline[0] = "LX")
{
//this is where i need to loop through the next lines
//until i hit the next line starting with LX.
}
}
何か案は?いつものように、お時間をいただきありがとうございます!