April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
システム間での連携データはJSON、XML、CSVなどが主流を締めていますが、固定長データというレイアウトでやり取りを求められるケースが依然として存在します。
ここでは固定長データそのものについての知識と、Goでそれらを扱う方法を紹介します。
固定長データとは、項目の開始位置と桁数で項目を区別するファイルレイアウトのことです。CSVであれば通常は区切り文字で項目を区別できますが、固定長ファイルの場合は項目を区別するための区切り文字が存在せず、データの桁数で内容を判定します。
たとえば、下記のようなCSVデータがあるとします。
isbn,発行日,価格,PDF,EPUB,ebook価格
978-4-87311-865-9,2019/9/17,4620,true,true,3696
978-4-87311-924-3,2020/10/10,2750,false,false,0
978-4-87311-878-9,2019/3/12,0,true,true,0
これを固定長で表現すると以下のようなレイアウトになります。
978-4-87311-865-9201909174620true true 3696
978-4-87311-924-3202010102750falsefalse0000
978-4-87311-878-9201903120000true true 0000
各項目は開始位置と項目長で特定するため、それに満たない項目は半角スペースで右埋めされたり、半角のゼロで左埋められます。場合によっては全角スペースで埋めるといった場合もしばしば見受けられます。
項目がすべてASCII文字であれば良いですが、全角文字が入ってくると桁数を解釈するための文字コードが重要になってきます。たとえば同じ文字でも、UTF-8とShift_JISのようなエンコードによって、文字コードのバイト数が異なるものがあります。また固定長と言っても、文字数で固定長にするのかバイト数で固定長にするかは連携の仕様次第です。 ...
Read now
Unlock full access