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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0618
カスタマーinput命令で16進数入力4解決


カスタマー

リンク

2009/6/18(Thu) 19:04:58|NO.25818

HSPでバイナリエディタを作っているのですが、
input命令で16進数での入力が出来ません。
input命令で可能かも分からないのですが、
教えてください。



この記事に返信する


hspail

リンク

2009/6/18(Thu) 19:32:45|NO.25819

input の第一パラメータで指定する変数を文字列型で初期化すればOK

a = "" input a
のように。
それとも16進数で扱う文字以外は入力できないようにするとかそういうことかな?



GENKI

リンク

2009/6/18(Thu) 19:38:09|NO.25820

勝手ながら変数の型を理解していないと予想。

文字列で受け取った後に数値に変換するといいと思います。
http://hspdev-wiki.net/?%BF%F4%C3%CD%BD%F1%BC%B0%CA%D1%B4%B9#lb75bd81

HSPスクリプトエディタのメニューから、ヘルプ→HSPプログラムガイドを開く
とすると、「プログラミング・マニュアル」が開きますので下記項目も参照してみてください。
 2.スクリプト記述の基本
 変数



inovia

リンク

2009/6/18(Thu) 19:53:32|NO.25823

数年前に作ったと思われるバイナリエディタもどき
コメントをいれてないので、参考程度にど〜ぞ


title "手抜きバイナリエディタw "+(16*20)+"bytesまでOK!" dialog "*",16 if stat=0:end fname=refstr:gsel 0,-1 sdim buf,16*20 bload fname,buf,16*20,0 s="":objsize 640/17,20 repeat 16 pos (640/17)*(cnt+1)+12,2 mes strf("%X",cnt) loop //2次配列変数を今回は使用してみます sdim s,64,16,20:i=0 repeat 20 repeat 16 pos (640/17)*(cnt+1),20*(c+1) tmp=peek(buf,i):i++ s.cnt.c=strf("%02X",tmp) input s.cnt.c,,,2 loop c++ loop button "save",*save gsel 0,1 stop *save i=0:c=0 repeat 20 repeat 16 //文字列の16進数を10進数に変換 tmp=int("$"+s.cnt.c) poke buf,i,tmp i++ loop c++ loop bsave fname+"_",buf //上書きが怖いので(^_^;)



カスタマー

リンク

2009/6/18(Thu) 20:37:06|NO.25825

「strとして16進数を入力して10進数(int)にすればいい」
こんな簡単ことにも気づかないなんて、本当に俺は馬鹿ですね…

教えてくれてありがとうございました!
こんな簡単なことに気づかずスレッドを作って、すいませんでした。



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