!
こんにちは。EDI X12 は初めてです。GS セグメントの 6 番目のフィールド (GS06) を読み取るタスクがあり、上の画像で赤く下線が引かれています。C# でコーディングして GS06 の値を取得する方法を教えてください。
まず、ドキュメント全体をメモリに格納します。次に、文字 106 を読み取ると、セグメント区切り文字が得られます。また、フィールド区切り文字として文字 4 を取得します。セグメント区切り文字に基づいて Splitstring を呼び出すと、セグメントの配列が得られます。
通常、GS は 2 番目のセグメントである必要があるため、array[1] (または、Andrew が指摘するように、"GS" & fieldDelim & "OG" で始まるセグメントを具体的に確認できます)。フィールド区切り文字に基づいて再度文字列を分割し、secondArray[5] は GS06 です。
まず、要素の区切り記号を見つける必要があります。あなたの例では、それはアスタリスクです。セグメント ターミネータはチルダです。
ISA セグメントは固定長です。他のセグメントは可変長です。パーサーで特定の要素を見つけるには、テキスト ファイルを読み取り、セグメント ターミネータに基づいてセグメントを解析する必要があります。その後、探しているセグメントを見つけ、要素区切り文字の数を計算すると、見つかった値が得られます。
あなたの例では、GS OG文字列は定数になります。したがって、テキスト ファイルを読み取ることができ、~GS OGに遭遇すると、正しい場所にいることがわかります。区切り文字に関する知識を使用して、文字列内の必要な場所に到達します。
または、より多くのマッピングオプションを提供する商用翻訳者を使用してください。
最初に各行を配列に入れ ('~' 記号を分割できます)、2 行目が GS セグメントになるようにします。次に、GS セグメントを配列に分割します (ypu は '*' を使用して分割できます)。 GSセグメント配列はGS06になります。これを試してみてください。同様に、任意の値を取得できます。