HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0420
koyastrmidについて5未解決


koya

リンク

2014/4/20(Sun) 15:20:59|NO.61599

strmidの使い方がよくわかりません。
test.txtの中に、

1 TEST

という風に文字が書いてあると、
TEST
と表示されるようにしました。
↓ソースの一部

notesel bin noteload "test.txt" *set repeat noteget bin,Y if strmid(bin,0,1)="1" : { mes strmid(bin,1,10000) gpri = 1 } if Y>noteinfo(0) : break Y++ loop Y=0
これだと

1 TEST
1 TEST2

という風にtest.txtに書いてあると

TEST
1 TEST2
TEST2
という風になります



この記事に返信する


暇人

リンク

2014/4/20(Sun) 16:41:59|NO.61603

>notesel bin
ここで指定してるバッファを

> noteget bin,Y
こっちでも使用してるのが問題
作業用に別の変数を使えば良い



FunnyMaker

リンク

2014/4/20(Sun) 16:43:52|NO.61604

5行目が不適です。
binではなく他の適当な変数を指定しましょう。

noteget bin,Yとすると、「bin」の内容が「bin」のY+1行目の内容に置き換わります。(※文字列的に。)
つまり、1サイクル目で大御所の内容が失われていますので、2サイクル目でバグります。



FunnyMaker

リンク

2014/4/20(Sun) 16:45:11|NO.61605

↑ごめんなさい。僅差で暇人さんの後にアップロードしてしまいました。



KA

リンク

2014/4/24(Thu) 11:48:00|NO.61650

バッファ云々の前にヘルプを読んでいるのでしょうか?
根本的に勘違いしている気がします。

そのスクリプトの各行に、
どういう処理を考えているのかコメントを書き、
どういう結果を望みどういう結果だったのかを書きましょう。



noteget

リンク

2014/4/29(Tue) 16:59:48|NO.61762

noteget命令で「どのバッファから読みだすのか?」はnotesel命令で決められているので、noteget命令では「バッファから読みだした1行を格納する変数」を指定するんですよ

ですので、
noteget bin,Y
は、
noteget tmp,Y ;binのY行目を読み込んで、tmpに収める
でOKです

で、
 if strmid(tmp,0,1)="1" : {
mes strmid(tmp,1,10000)
gpri = 1
}
と続ける。
たぶん、これでうまくいく
試してみて

……うん、これは、F1キーをたたいた時のnotegetの説明文がよろしくないね

「読み出し先の変数名」よりは、
「読みだした行を格納する変数名」のほうが、ピンとくると思う。



ONION software Copyright 1997-2023(c) All rights reserved.