| > 用は規則性の問題です。
本人は解決しちゃったので、ここのとこにもはや言及がないですが、 「アイテム」の開始判別ができればファイル入力で読み込んで順次処理するだけ ですよね。
今村さんのは今風になってて私には読みにくかったので日本語コマンドだけで 自己流に書きなおしてみた。(処理内容も多分違いますが) *最初は[品名]だけの表を使用 *【】があったら項目を追加 *空行の後から項目名までが品名(強制改行文字で連結したほうがいい?) *間違えて「区切り=行」なんてやってたら、EOFを検出できずに *最後の項目にゴミを追加し続けてレコード長エラーになった。
変数 {&項目名},整数{&位置} 表 "区切り文字のテスト", 終了状態=&実行リターン ファイル入力開始 "区切り文字のテスト.txt", 終了状態=&実行リターン 繰り返し (&実行リターン=1) ファイル入力 &STR, 行, 終了状態=&実行リターン ケース開始 ケース (&STR="") &項目名="" ケース (#部分列(&STR,1,1)="【") &項目名=#部分列(&STR,2,#代入(&位置,#文字位置(&STR,"】"))-2) &STR=#部分列(&STR,&位置+1) ケース終了 ケース開始 ケース (&STR="") ケース (&項目名="") &項目名="品名" 行追加 [品名]=&STR ケース その他 条件 (#項目番号(&項目名)<1) 項目属性変更 追加,{&項目名,"文字列",10,"左寄せ"} ジャンプ 行番号=最終 コマンド "行訂正 ["+&項目名+"]=#項目属性(#項目番号(&項目名),0)+&STR" ケース終了 繰り返し終了 条件 (&実行リターン<>-1) 確認 "EOFの前にエラーになりました" ファイル入力終了
|