固定長データ
Posted feedbacks - D
D言語ではalign属性によって構造体やクラスのアライメントを調整することができます。
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 | private import std.stream;
align(1) struct Person {
char[12] familyName;
char[12] givenName;
char gender;
char[3] age;
char[4] year;
char[2] month;
}
align(1) struct Menu {
char[2] day;
char[500] breakfast;
char[500] lunch;
char[500] dinner;
}
const DATA_FILE = "test.txt";
void main() {
scope data = new File(DATA_FILE, FileMode.In);
foreach(i; 0..500) {
Person person;
data.readExact(&person, person.sizeof);
foreach(day; 0..31) {
Menu menu;
data.readExact(&menu, menu.sizeof);
}
}
}
|


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