固定長データ
Posted feedbacks - Bash
内蔵コマンドのみのpure bashで。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | shopt -s extglob
declare -i age
function readRecord() {
local n=$1
local s d
read -n 12 s
family_name[$n]=${s%%+( )}
read -n 12 s
first_name[$n]=${s%%+( )}
read -n 1 sex[$n]
read -n 3 age[$n]
read -n 4 year[$n]
read -n 2 mon[$n]
for ((d = 0; d < 31; d++));do
eval read -n 2 date_$d[$n]
read -n 500 s
eval "breakfast_$d[$n]='${s%%+( )}'"
read -n 500 s
eval "lunch$d[$n]='${s%%+( )}'"
read -n 500 s
eval "dinner_$d[$n]='${s%%+( )}'"
done
}
for ((i = 0; i < 500; i++));do
readRecord $i
done < data.txt
|

Mymelo #6060() Rating5/7=0.71
固定長のデータが記載されたファイルを読み込むプログラムを作成してください。読み込んだデータは、複数の値を格納できるデータ型に格納してください。
ファイルには、すべて ascii 文字で以下のデータが格納されています。デリミタはなく、固定長で格納されています。レコードとレコードのあいだも改行はありません。
以上の形式のデータ500人分を読みこんで、データを複数の値を格納できるデータ型に格納してください。データに大して何か処理を行う必要はなく、すぐに破棄してかまいません。
この問題は、このようなファイルをどのように扱うかを知りたくて作成しました。
[ reply ]