[リストへもどる]
一括表示

投稿時間:2003/08/28(Thu) 20:23
投稿者名:出雲
Eメール:
URL :
タイトル:
ランダムファイルの結果がN88BASICの時と異なるのは?
いつもこの掲示板で勉強させて頂いております。

さて以前 N88BASICで作成していたものをVB6で再度作り直しているのですがランダムファイルで

(N88BASICの時)
OPEN "DATA" AS #1
FIELD #1,3 AS A$,252 AS B$
LSET A$=CHR$(247)+CHR$(0)+CHR$(1)
LSET B$=STRING$(252,CHR$(0))
PUT #1,1
CLOSE

(VB6の時)
Dim strA          As String * 3
Dim strB          As String * 252
Dim strAB         As String * 256
'
intFreeFileNo = FreeFile
strA = Chr$(247) + Chr$(0) + Chr$(1)
strB = String$(252, Chr$(0))
strAB = strA + strB
'
Open app.path & "DATA" For Random As #intFreeFileNo Len = 256
   Put #intFreeFileNo, 1, strAB
Close #intFreeFileNo

と直したのですが

上記で出来上がったファイルの結果がダンプリストで見ると
(N88BASICの時は)
F7 00 01 00 00 ......

(VB6の時は)
00 00 01 00 00 ......

と結果が異なってしまい、何処が悪いのか分からずに困っております。

何方かお知恵をお借りできないでしょうか?
よろしくお願い致します。

投稿時間:2003/08/28(Thu) 22:17
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: ランダムファイルの結果がN88BASICの時と異なるのは?
VB6の文字列は、Unicode (UTF-16)といって、全ての文字を 2バイトで表現します。
そのため、Chr(247) は 「F7 00」、という並びになります。(ChrB, ChrW関数との違いに注意!)


> 何処が悪いのか分からずに困っております。
固定長文字列型の替わりに、バイト配列を使うことを検討してください。

[バイト型配列のテクニック] - [2 固定長テキストファイルを使う]
http://www.interq.or.jp/www-user/komurak/progtec/015.htm

投稿時間:2003/08/28(Thu) 22:54
投稿者名:出雲
Eメール:
URL :
タイトル:
Re^2: ランダムファイルの結果がN88BASICの時と異なるのは?
魔界の仮面弁士さん

早速の回答ありがとうございます。

> 固定長文字列型の替わりに、バイト配列を使うことを検討してください。

恥ずかしながら今までバイト配列と言うのを使ったことが有りませんでした。(正確には知りませんでした)
バイト配列について少し勉強してみます。
よって出来たかどうかのご連絡は時間がかかりますのでご了承ください。

投稿時間:2003/09/01(Mon) 17:44
投稿者名:出雲
Eメール:
URL :
タイトル:
解決しました
魔界の仮面弁士さん

> [バイト型配列のテクニック] - [2 固定長テキストファイルを使う]
> http://www.interq.or.jp/www-user/komurak/progtec/015.htm

上記ご紹介して頂いたサイトや色々調べた結果出来ました。
ありがとうございました。