アドバイス頂きたく思います。
PC情報を取得するために「あるテキストから1行ずつ読み込み、
該当する文字列を検索してhitすればその行のある部分を抽出して
表示する。」というツールを開発しています。
検索する文字列がソースのように同じ文字列の場合、読込を頭からではなく
hitした次の行から読み込まないと当然1hit目がずっと表示される結果になります。
getstr の第3パラメーターにstrsizeをインクリメントしてあげれば動くと思っているのですが
3文言目あたりから桁ズレなどが起こってしまいました。
読み込むテキストは
Total Memory 1:512M
Total Memory 2:1024M
Total Memory 3:512M
Total Memory 4:1024M
だとして
実行後に
1:512Mslot1
2:512Mslot2
3:512Mslot3
4:512Mslot4
と表示するにはソースのどこを直せばよいでしょうか?
お手数ですがアドバイスお願いいたします。
notesel memlist
noteload "test.txt" button gosub "終わり",*owari i = 0 cnt2 = 0 name = "Total Memory" gosub *findlist totalram = find3 mes ""+totalram+"slot1" i++ name = "Total Memory" gosub *findlist totalram2 = find3 mes ""+totalram2+"slot2" name = "Total Memory" gosub *findlist totalram3 = find3 mes ""+totalram3+"slot3" name = "Total Memory" gosub *findlist totalram4 = find3 mes ""+totalram4+"slot4" stop *owari end ;検索ルーチン *findlist repeat notemax getstr list,memlist,i i += strsize find1 = instr(list,0,name) if find1 > -1{ noteget find2,cnt2 + cnt find3 = strmid(find2,12,10) cnt2 = cnt return} loop find3 = "none" return end