アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、自分はMIDI作成ツールをVB6LEを使って作っているのですが、
ファイル出力の段階でうまく行きません。

Chr(144)やChr(224)といった文字をファイルに出力する方法を教えていただけませんか?

OSはWindows98SEを使用し、言語はVB6LEです。
OSに依存しない方法をできれば教えてほしいです。

A 回答 (5件)

私の知っている限りでは、Print #を使っている限りは、無理だと思います。



Chr()は、一度Unicodeになります。Unicodeになるときに、Unicodeにない文字はNullになってしまいます。

では、Chr()を使用しないで、Byteの配列に設定してから、出力すればOKかと言うと、Print #だと一度Unicodeの文字列にしてから、出力しますから、やはりアウトになります。

Open For Binayを使用した場合は、文字ではなく、バイナリーデータとして出力しているので、余分な変換が入らないためにうまくいっています。

という訳で、私は、Print #では駄目じゃないかと思うのですが、どなたか出来る方法がありましたらフォローお願いします。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

やはり無理なのでしょうか。
VB2ではうまくいっていたのでVB6でもいくと思ったのですが・・・

お礼日時:2001/01/14 01:51

VB2では、内部コードにUNICODEを使用していませんので、ご希望のことができたのだと思います。

    • good
    • 0

こうじゃ駄目ですが?



Dim bytData(1 To 2) As Byte
Open "c:\test.txt" For Binary Access Write Lock Write As #1
bytData(1) = 144
bytData(2) = 244
Put #1, , bytData
Close #1
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
確かにきれいに出力することができました。

ですが、出力命令を
Open "c:\test.txt" For Output As #1
Print #1, dat
Close #1
で行っているので、できればこの方法に絡めたやり方を
教えていただきたいです。

お礼日時:2001/01/13 23:06

補足です. でませんか~ぁ・・・ -_-;;;



で,エラーは出ませんか?
ファイル出力はできるが,chr(144)などの部分が出力されていないとか,"ABCDEF"では正しく出力されているとか,もうすこし細かい状況がわからないとなんとも言えません.

それから,書きこみのチェックはどのように行っていますか?
書き出したファイルをテキストエディタなどで開いた場合,128-255の文字コードのうち,半角カナで無い部分はシフトJISの1バイト目と判断されます.
    • good
    • 0
この回答へのお礼

説明しますと・・・
エラーは出ません。
出力時、Chr(144)などを出力したところが
Chr(0)を出力したようになっています。
その他、いくつかはうまく出力されませんが、
それ以外はうまく出力されます。

チェックのほうはバイナリエディタを使って行ってます。
名前は「Stirling」といいます。

お礼日時:2001/01/13 22:59

VB6LEは使ったこと無いのですが(VB5,VB6は使ったことがある)



OPEN filename for output as #1
PRINT #1,chr(144);chr(224);
CLOSE #1

で出ませんか?
#LEバージョンの制限に入っていたらすみません.
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
しかし、残念ながら、この方法ではうまく出力されないようです。
他に何か思いつきませんか?

お礼日時:2001/01/13 04:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!