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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1029
UNGAnotesave と bsave の違いについて教えてください4解決


UNGA

リンク

2016/10/29(Sat) 15:03:54|NO.77265

ソフトに簡単なTXTの暗号化・復号化ルーチンを組み込みたいと考えているのですが、後ろにゴミが
ついてしまったりして、なかなかうまくいきません。

以下の3点について教えていただけると幸いです。
1 notesave と bsave の違い
2 noteload と bload の違い
3 exist filename 後に strsizeに格納されるファイルサイズと
  fileを変数にロードしてからstrlen(変数名)で取ってくるファイルサイズの違い

よろしくお願いいたします。



この記事に返信する


MillkeyStars

リンク

2016/10/29(Sat) 15:58:44|NO.77266

exist が取得してくるサイズは、ファイルの実際のサイズ。
strlen が取得してくるサイズは、終端文字を含めないサイズ。
(終端文字とは、バイナリ数値 0 の事)



スペース

リンク

2016/10/29(Sat) 17:23:07|NO.77267

bload命令はファイルのオフセット値を指定すると、その値だけファイルの先頭からずらした場所からが操作の対象になります。
たとえば、bload命令でオフセット値を100に指定すると、 通常はファイルの先頭からデータをメモリに読み込むところを、
先頭から100バイト過ぎた場所 (100バイトスキップして) からメモリに読み込まれます。

これにより、大きなファイルの一部だけを読み込むことや、分割して処理することなどが可能になります。
テキストファイルを読み込む場合には、専用のnoteload命令を使用することを推奨します。



KA

リンク

2016/10/29(Sat) 18:18:27|NO.77268

>>1 notesave と bsave の違い
notesaveは、文字列の保存専用です。
bsaveは、文字列も文字列以外も保存出来ます。

>>2 noteload と bload の違い
上記と同様。

>>3 exist filename 後に strsizeに格納されるファイルサイズと
>>  fileを変数にロードしてからstrlen(変数名)で取ってくるファイルサイズの違い
この場合のstrsizeはbsaveと同じサイズを返します。
strlenは文字として認識できるサイズを返します。


ノート系の命令は文字列を文字列として扱う場合は便利ですが、質問の様に何らかの
加工を加えた結果、文字列として扱えないような操作には不向きです。

文字列型変数とは言いますが実際には汎用変数と同じで、文字として扱うのであれば
文字列しか使えませんが、文字として認識できないデータを扱うことも出来ます。

その場合は当然ですが、扱うデータのサイズは自前で管理することになります。

個人的にノート系の命令はフォーマットの決まった文字列専用の命令で、それ以外の
場合はBLOAD/BSAVEを使って自前で解釈するという風な使い分けです。



UNGA

リンク

2016/10/29(Sat) 23:25:39|NO.77269

有難うございます。大変参考になりました。



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