やってみた。その2。
なんか無性に悔しかったので改めて「毎行読む」を使ってチャレンジしてみました。
ついでにGUIも揃えてみた。無駄なことは大好きだ。
えぇと、126行になっちゃいました。前回のやつは44行(データ込み)
//1の時はいきなり検索し始めるよ☆あと保存もしないよ☆ テストモード=0 //ファイルの指定 「ファイルを選択してください。」と表示 ファイル名エディタとはエディタ そのIMEは「IMEオフ」 その幅は250 その変更した時は ファイル名エディタのヒントはファイル名エディタ ファイル名エディタが存在 もしそれ=1なら検索開始ボタンの有効は1 違えば検索開始ボタンの有効は0 ファイル選択ボタンとはボタン これについて テキストは「...」 位置はファイル名エディタの右側 Y=Y-3 幅は50 マウス離した時は ファイル選択。 もしそれ<>キャンセルなら ファイル名エディタはそれ サンプルチェックとはチェック その位置はファイル名エディタの下側 そのテキストは「サンプルファイルを使う」 その幅は文字幅取得(サンプルチェックのテキスト)+15 その値は1 その変更した時は ファイル選択ボタンの有効はNOT(サンプルチェックの値) ファイル名エディタの有効はファイル選択ボタンの有効 もし(サンプルチェックの値)なら検索開始ボタンの有効は1 違えば ファイル名エディタの変更した時 「保存するファイルを指定してください。」と表示 保存ファイルエディタとはエディタ そのテキストは母艦パス&「結果.txt」 その変更した時は 保存ファイルエディタのヒントは保存ファイルエディタ 保存選択ボタンとはボタン これについて 位置は保存ファイルエディタの右側 Y=Y-3 テキストは「...」 幅は50 クリックした時は ファイル選択。 もしそれ<>キャンセルなら 保存ファイルエディタはそれ 違えば 保存ファイルエディタは母艦パス&「結果.txt」 検索開始ボタンとはボタン そのクリックした時は〜検索開始 検索開始ボタンに注目 サンプルデータ=「大阪府,大阪市,自動車 大阪府,東大阪市,自転車 大阪府,大東市,自動車 大阪府,千早赤阪村,電車 三重県,津市,電車 京都府,宇治市,自動車 京都府,舞鶴市,船 兵庫県,神戸市,船 兵庫県,豊橋市,自動車 滋賀県,栗東市,船 滋賀県,大津市,電車 奈良県,十津川村,自動車 奈良県,三郷町,電車」 もしテストモード=1なら検索開始 ●検索開始 //ファイル名エディタのイベントを殺す ファイル名エディタの変更した時は「」 //乗り物数カウント用変数を初期化 乗り物数とはハッシュ もしサンプルチェックの値=1なら P=1 (P=1)でループ Q=母艦パス&「SAMPLE{回数}.txt」 P=存在(Q) ファイル名エディタはQ ファイル名エディタにサンプルデータを保存 ファイル名エディタを毎行読んで反復 対象をCSV取得して表行列交換してPに代入 //・「東」のつく市町村名を数える P\1で「東」が何文字目 Q=それ もしそれ>0なら東つき市町村=東つき市町村+1 //・「津」のつく市を数える P\1を『.*津.*市$』で正規表現マッチ Q=それ もしそれ<>「」なら津つき市=津つき市+1 //・乗り物の数を府県ごとに数える 乗り物数@(P\0)@(P\2)は(乗り物数@(P\0)@(P\2))+1 //保存用にデータ整形 W=「」 N=0 乗り物数のハッシュキー列挙して反復 Qはそれ (乗り物数@Q)のハッシュキー列挙して反復 W\(N)\0=Q //府県 W\(N)\1=それ //乗り物種類 W\(N)\2=乗り物数@(Q)@(それ) //乗り物件数 N=N+1 Wを表TSV変換 保存データは「東の付く市町村数{タブ}{東つき市町村}{~}」& 「津の付く市数{タブ}{津つき市}{~}{~}」&それ //ファイルに保存。 もしテストモード<>1なら 保存データを保存ファイルエディタに保存。 違えば 保存データをメモ記入
ハッシュも毎行読むも使ったのほぼ初めてでした。たのしーなー。
カウントするのにハッシュを使わない方法もきっとあるんだろうな。
あとハッシュを表にするのは面倒だったです。
これから他の方の回答を読むことにします。