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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0314
コカコーラバイナリエディタの製作7未解決


コカコーラ

リンク

2015/3/14(Sat) 02:30:28|NO.67848

数年前からバイナリエディタhspで作りたいな。と思って調べたり
ソースを書いているのですが、なかなかうまくいきません。
お手数おかけしますが、サンプルソースなどを下さい。
自分でも頑張ってみますのでお願いいたします。



この記事に返信する


科学太郎

リンク

2015/3/14(Sat) 18:17:21|NO.67857

> お手数おかけしますが、サンプルソースなどを下さい。
程度によります。
16進数のダンプ表示をして、独自にカーソルなどを出して、修正するのでしょうか?
それとも16進数のダンプ表示の一部をダブルクリックして編集画面で修正するのでしょうか?
あなたの考えてるバイナリ・エディタが良く分かりません。

サンプルソースは探せばあるのでしょうが、
参考になるとは思いません。

> 自分でも頑張ってみますのでお願いいたします。
まずは、どのようなバイナリ・エディタを作ろうとして、
どこでつまづいてるのでしょうか?
お知らせ下さい。

ちなみに私もミニ・バイナリ閲覧ソフトを作成中です。
修正機能は付けない予定ですが、今後の開発でつけるかもね。



可憐

リンク

2015/3/14(Sat) 21:01:37|NO.67862

何の為にバイナリエディタを作りたいか
目的を書かないと厳しいのではないでしょうか。



窓月らら

リンク

2015/3/15(Sun) 00:01:54|NO.67863

peek命令 poke命令
この命令について、ヘルプで読んでください。
これだけで出来ると思いますが。

この命令はゲームを作るときにも頻繁に使ってます。
例えばマップデータの読み書きとかね。



y.tack

リンク

2015/3/15(Sun) 11:03:14|NO.67875

エディタのロジック学んだことないですが

最初は小さいのから育てて行く方がいいかもしれませんね

・表示するのを書き換え不可mesboxとして
40×40に固定する

・縦横関係なく 何文字目に何の値を代入する
ボタン×1 input×2作る

・何文字目から取得する ボタンとinputを設置する

・代入処理と取得処理実装

・TOOLの上じゃなくスクリプトの中で初期バイナリ代入する

・次のSTEPとして
縦何番横何番から 代入と取得処理にver upする



y.tack

リンク

2015/3/15(Sun) 11:11:01|NO.67876

・vload vsaveのボタンを設置して 処理を実装して
簡易保存 読み込み機能を作る

・最初にサブウィンドゥを表示して
mesboxで最初のバイナリを代入する

・代入するバイナリをinputで
一行ならある程度並んでる数字を代入できるようにする

・横にLISTBOXを設置して
40×40×LISTBOXの項目数というデータ構造で
データの数を拡張する

・最初の方で実装してた方よさそうなのが
バイナリと文字列の変換処理

・vload vsaveじゃなくbload bsave実装する

#自分に言い聞かせてる面なんですけど
#割とHSP暦あるのに簡単なのしか書けないのは
#どっかで 遊び感覚でやってるからかな?と
#真剣にならないと 幾ら時間重ねてもたいしたもの出来ないですよね



y.tack

リンク

2015/3/15(Sun) 17:44:20|NO.67890

・表示するのを書き換え不可mesboxとして
40×40に固定する
実装

・縦横関係なく 何文字目に何の値を代入する
ボタン×1 input×2作る
実装

・何文字目から取得する ボタンとinputを設置する
実装

・代入処理と取得処理実装
実装
取得処理実装は未実装

・TOOLの上じゃなくスクリプトの中で初期バイナリ代入する
実装

・次のSTEPとして
縦何番横何番から 代入と取得処理にver upする
実装
取得処理実装は未実装

・vload vsaveのボタンを設置して 処理を実装して
簡易保存 読み込み機能を作る
実装

・最初にサブウィンドゥを表示して
mesboxで最初のバイナリを代入する
未実装

・代入するバイナリをinputで
一行ならある程度並んでる数字を代入できるようにする
未実装

・横にLISTBOXを設置して
40×40×LISTBOXの項目数というデータ構造で
データの数を拡張する
未実装

・最初の方で実装してた方よさそうなのが
バイナリと文字列の変換処理
未実装

・vload vsaveじゃなくbload bsave実装する
未実装



y.tack

リンク

2015/3/15(Sun) 18:13:17|NO.67892

ver0.0.3

#include "hspda.as" pos 210,0 sdim a_data,1700 repeat 40 repeat 40 a_data+="0" loop loop poke a_data,0,'1' poke a_data,1,'2' poke a_data,2,'3' poke a_data,40,'4' poke a_data,80,'5' poke a_data,120,'6' sdim the_data,2000 the_data+=" " repeat 40 the_data+=str(cnt\10) loop the_data+="\n" repeat 40 n=cnt the_data+=strf("%02d:",cnt) repeat 40 nn=cnt the_data+=strmid(a_data,(n*40+nn),1) loop the_data+="\n" loop mesbox the_data,400,400,5 ID4mesbox=stat pos 0,0 n4input_one_loc=0 n4input_one_val=0 mes "loc" input n4input_one_loc,200,20,4 ID4input_one_loc=stat mes "val" input n4input_one_val,200,20,4 ID4input_one_val=stat objsize 200,20 button "do one",*l_do_one n4input_xy_loc_x=0 n4input_xy_loc_y=0 n4input_xy_val=0 mes "loc x" input n4input_xy_loc_x,200,20,2 ID4input_xy_loc_x=stat mes "loc y" input n4input_xy_loc_y,200,20,2 ID4input_xy_loc_y=stat mes "val" input n4input_xy_val,200,20,2 ID4input_xy_val=stat button "do xy",*l_do_xy button "do redraw",*l_redraw_mb button "vsave",*do_vsave button "vload",*do_vload screen 1,640,480 sdim IN_OUT_MB,1610 IN_OUT_MB="" mesbox IN_OUT_MB,640,380 ID4IN_OUT_MB=stat objsize 200,20 button "data in",*l_do_din button "data out",*l_do_dout button "bsave",*l_do_bsave button "bload",*l_do_bload DO_FILE="hoge.dat" input DO_FILE,200,20 ID4DO_FILE=stat gsel 0 stop *l_do_bload dialog "bloadしますか?",2 if stat==7:stop exist DO_FILE tmp_bout=strsize if tmp_bout>1600:tmp_bout=1600 bload DO_FILE,IN_OUT_MB,tmp_bout // size 1600以下の読み込みTESTしてないw gsel 1 objprm ID4IN_OUT_MB,IN_OUT_MB gsel 0 stop *l_do_bsave dialog "bsaveしますか?",2 if stat==7:stop tmp_din="" repeat 1600 tmp_din+="0" loop tmp_din=IN_OUT_MB+tmp_din tmp_din=strmid(tmp_din,0,1600) bsave DO_FILE,tmp_din,1600 stop *l_do_din tmp_din="" repeat 1600 tmp_din+="0" loop tmp_din=IN_OUT_MB+tmp_din tmp_din=strmid(tmp_din,0,1600) gsel 0 a_data=tmp_din goto *l_redraw_mb stop *l_do_dout gsel 1 IN_OUT_MB=a_data objprm ID4IN_OUT_MB,IN_OUT_MB gsel 0 stop *tmp stop *l_do_xy tmp_xy=n4input_xy_loc_y*40+n4input_xy_loc_x n4input_one_loc=tmp_xy objprm ID4input_one_loc,n4input_one_loc n4input_one_val=n4input_xy_val objprm ID4input_one_val,n4input_one_val goto *l_do_one *l_do_one tmp_loc=n4input_one_loc tmp_val=n4input_one_val tmp_val\=16 tmp_char=strf("%01x",tmp_val) if tmp_loc >= 1601:tmp_loc=1601 poke a_data,tmp_loc,peek(tmp_char,0) goto *l_redraw_mb stop *l_redraw_mb sdim the_data,2000 the_data+=" " repeat 40 the_data+=str(cnt\10) loop the_data+="\n" repeat 40 n=cnt the_data+=strf("%02d:",cnt) repeat 40 nn=cnt the_data+=strmid(a_data,(n*40+nn),1) loop the_data+="\n" loop objprm ID4mesbox,the_data stop *do_vsave dialog "vsaveしますか?",2 if stat==7:stop vsave "tmp_FILE.dat" stop *do_vload dialog "vloadしますか?",2 if stat==7:stop vload "tmp_FILE.dat" goto *l_redraw_mb stop
ver0.0.2
mesboxからバイナリ入力取得 実装
ver0.0.3
FILE読み込み実装



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