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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0523
wai16進数を読み込んでASCIIに変換5解決


wai

リンク

2008/5/23(Fri) 15:09:04|NO.16020

読み込んだファイルの
0x00から0x0A
までを取得して16進数からASCIIに変換してakに代入。
入力ボックスにakの内容を表示。
今度はakをASCIIから16進数に変換して読み込んだファイルに上書き。

といったことをしたいのですが、
peek命令だと16進数として読み込めず、ASCIIに変換する命令も見当たらないのですが、どうすれば良いでしょうか?

以下、作ってみたスクリプト(読み込む部分)です。

exist "test.txt" sdim Loadfile,strsize bload "test.txt",LoadFile a = peek(LoadFile,0x00) b = peek(LoadFile,0x01) c = peek(LoadFile,0x02) d = peek(LoadFile,0x03) e = peek(LoadFile,0x04) f = peek(LoadFile,0x05) g = peek(LoadFile,0x06) h = peek(LoadFile,0x07) i = peek(LoadFile,0x08) j = peek(LoadFile,0x09) k = peek(LoadFile,0x0A) ak=a+b+c+d+e+f+g+h+i+j+k input0=ak pos 10,10 input input0,280,24 stop

どなたかご存知の方がいらっしゃいましたら教えてください。
よろしくお願いしますm(__)m



この記事に返信する


SYAM

リンク

2008/5/23(Fri) 15:41:29|NO.16022

以下の語の意味が分かりません。
「ファイルの0x00」
「ファイルの0x0a」
これはファイルの何が00や0aなのでしょう?
データ?ファイル先頭からのバイト数?
また
「ASCII」
の語の意味を誤解されてはいないでしょうか?そのため、文章の意味が通らないものになっており、したいことがよく解りません。



wai

リンク

2008/5/23(Fri) 15:46:59|NO.16023

わかりにくい文章で申し訳ありません。
ファイル先頭からのバイト数です。

「ASCII」は「61」→「a」のように16進数から人が読めるような形に変換したいということです。
意味を誤解しているかもしれません。

よろしくお願いします。



SYAM

リンク

2008/5/23(Fri) 15:47:11|NO.16024

念のためすこしだけ整理しますと
「ASCII」は 文字を 「数値」で表す方法です。
「16進法」は 「数値」 を 「数字(など)」で表す方法の一つです。
数値 と 数字 の違いに注意してください。



SYAM

リンク

2008/5/23(Fri) 16:19:40|NO.16026

読み込みは簡単です
そもそも、コンピューターのメモリは数値しか格納できませんから、
文字のASCIIコード(数値)の形で
メモリに格納します。つまりメモリから読み出した数値はすでにASCIIコードです。
strf関数は数値を数字の文字にしてくれます。この時、数字の使い方を16進法にするよう指示すればよいワケです。

sdim obj,1024 sdim inbuf,21 bload "obj",obj repeat 10 inbuf+=strf("%02x",peek(obj,cnt)) loop input inbuf



wai

リンク

2008/5/23(Fri) 16:35:21|NO.16029

ありがとうございます!
解決しました。

strf関数の存在を知りませんでした…。
意味不明な文章で申し訳ありませんでしたm(__)m



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