-PR-
解決済み

VB6LEを使ってのファイル出力について

  • すぐに回答を!
  • 質問No.27577
  • 閲覧数32
  • ありがとう数8
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 44% (4/9)

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

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

OSはWindows98SEを使用し、言語はVB6LEです。
OSに依存しない方法をできれば教えてほしいです。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル11

ベストアンサー率 49% (139/279)

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

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

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

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

という訳で、私は、Print #では駄目じゃないかと思うのですが、どなたか出来る方法がありましたらフォローお願いします。
お礼コメント
mr_oyaji

お礼率 44% (4/9)

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

やはり無理なのでしょうか。
VB2ではうまくいっていたのでVB6でもいくと思ったのですが・・・
投稿日時 - 2001-01-14 01:51:41
関連するQ&A
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル8

ベストアンサー率 38% (22/57)

VB6LEは使ったこと無いのですが(VB5,VB6は使ったことがある) OPEN filename for output as #1 PRINT #1,chr(144);chr(224); CLOSE #1 で出ませんか? #LEバージョンの制限に入っていたらすみません. ...続きを読む
VB6LEは使ったこと無いのですが(VB5,VB6は使ったことがある)

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

で出ませんか?
#LEバージョンの制限に入っていたらすみません.
お礼コメント
mr_oyaji

お礼率 44% (4/9)

早速のお返事ありがとうございます。
しかし、残念ながら、この方法ではうまく出力されないようです。
他に何か思いつきませんか?
投稿日時 - 2001-01-13 04:55:03


  • 回答No.2
レベル8

ベストアンサー率 38% (22/57)

補足です. でませんか~ぁ・・・ -_-;;; で,エラーは出ませんか? ファイル出力はできるが,chr(144)などの部分が出力されていないとか,"ABCDEF"では正しく出力されているとか,もうすこし細かい状況がわからないとなんとも言えません. それから,書きこみのチェックはどのように行っていますか? 書き出したファイルをテキストエディタなどで開いた場合,128-2 ...続きを読む
補足です. でませんか~ぁ・・・ -_-;;;

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

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

お礼率 44% (4/9)

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

チェックのほうはバイナリエディタを使って行ってます。
名前は「Stirling」といいます。
投稿日時 - 2001-01-13 22:59:43
  • 回答No.3
レベル11

ベストアンサー率 49% (139/279)

こうじゃ駄目ですが? 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 ...続きを読む
こうじゃ駄目ですが?

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
お礼コメント
mr_oyaji

お礼率 44% (4/9)

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

ですが、出力命令を
Open "c:\test.txt" For Output As #1
Print #1, dat
Close #1
で行っているので、できればこの方法に絡めたやり方を
教えていただきたいです。
投稿日時 - 2001-01-13 23:06:01
  • 回答No.5
レベル11

ベストアンサー率 49% (139/279)

VB2では、内部コードにUNICODEを使用していませんので、ご希望のことができたのだと思います。
VB2では、内部コードにUNICODEを使用していませんので、ご希望のことができたのだと思います。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ