• ベストアンサー

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

現在、自分はMIDI作成ツールをVB6LEを使って作っているのですが、 ファイル出力の段階でうまく行きません。 Chr(144)やChr(224)といった文字をファイルに出力する方法を教えていただけませんか? OSはWindows98SEを使用し、言語はVB6LEです。 OSに依存しない方法をできれば教えてほしいです。

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

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.4

私の知っている限りでは、Print #を使っている限りは、無理だと思います。 Chr()は、一度Unicodeになります。Unicodeになるときに、Unicodeにない文字はNullになってしまいます。 では、Chr()を使用しないで、Byteの配列に設定してから、出力すればOKかと言うと、Print #だと一度Unicodeの文字列にしてから、出力しますから、やはりアウトになります。 Open For Binayを使用した場合は、文字ではなく、バイナリーデータとして出力しているので、余分な変換が入らないためにうまくいっています。 という訳で、私は、Print #では駄目じゃないかと思うのですが、どなたか出来る方法がありましたらフォローお願いします。

mr_oyaji
質問者

お礼

アドバイスありがとうございます。 やはり無理なのでしょうか。 VB2ではうまくいっていたのでVB6でもいくと思ったのですが・・・

その他の回答 (4)

  • arata
  • ベストアンサー率49% (139/279)
回答No.5

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

  • arata
  • ベストアンサー率49% (139/279)
回答No.3

こうじゃ駄目ですが? 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
質問者

お礼

アドバイスありがとうございます。 確かにきれいに出力することができました。 ですが、出力命令を Open "c:\test.txt" For Output As #1 Print #1, dat Close #1 で行っているので、できればこの方法に絡めたやり方を 教えていただきたいです。

  • linus127
  • ベストアンサー率38% (22/57)
回答No.2

補足です. でませんか~ぁ・・・ -_-;;; で,エラーは出ませんか? ファイル出力はできるが,chr(144)などの部分が出力されていないとか,"ABCDEF"では正しく出力されているとか,もうすこし細かい状況がわからないとなんとも言えません. それから,書きこみのチェックはどのように行っていますか? 書き出したファイルをテキストエディタなどで開いた場合,128-255の文字コードのうち,半角カナで無い部分はシフトJISの1バイト目と判断されます.

mr_oyaji
質問者

お礼

説明しますと・・・ エラーは出ません。 出力時、Chr(144)などを出力したところが Chr(0)を出力したようになっています。 その他、いくつかはうまく出力されませんが、 それ以外はうまく出力されます。 チェックのほうはバイナリエディタを使って行ってます。 名前は「Stirling」といいます。

  • linus127
  • ベストアンサー率38% (22/57)
回答No.1

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

mr_oyaji
質問者

お礼

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

関連するQ&A

  • VB.netからCentOSへのファイル出力

    VB.net2010とCentOS5.5において、 VB.net→CentOSへファイル出力(.txt:ログファイル)するアプリの開発をおこなっております。 ■主質問 CentOS(もしくはLinux)上の指定のフォルダへ、ファイル出力する場合に 本来どのような方式での転送が望ましいのでしょうか? セキュリティなどももちろん考慮して行いたいと考えております。 いくつか方法は考えております。 ■自分で試案していること ◆Sambaを利用する方法 1.CentOSにSambaをセットアップし、CentOSの指定のフォルダを共有、   Windows上でもアクセスできるにようにする。 2.VB.netより、net use接続し、ファイル出力。 Samba導入による方法を考えている反面、セキュリティホールなどの心配がないか不安です。 ネットで「Samba, セキュリティーホール」の語句で検索すると、それなりに結果が出てきたので(汗 (それだけ都度セキュリティに対応しているとも考えられますが。。。) 本来、Sambaを利用して、Windows&Vb.netから、別OS(linux,Centos)などへ ファイル出力する方法がベターなのかも気になっております。 ◆SSHによる 別の案として、VB.netからSSHによる方法も考えているのですが、 ネット検索してみたところ、専用のコンポーネントなどあるようですが (また、サードパーティの用意したものはあまり使用したくないと考えております) コーディング的な技術情報はあまり見つけることができなく、困っております。 CentOS(もしくはLinux)などに、Windows上のvb.netからファイル出力するのに より良い方法をご存知でしたら、ご教授のほど、よろしくお願いいたします。

  • MDBファイルをCSV出力したい

    こんばんは。 環境: OS:WINDOWS2000 VB6.0 sp5 アクセス2000 VBからアクセスのMDBデータをCSV形式で出力させようとしています。  mdbファイルが実行中にVBのexeを起動してcsvファイルを取得したいのですが、いい方法が分かりません。 閉じているMDBファイルのデータをCSVで出力することは可能です。  MDBファイルが開いているとexeを実行した時に「実行時エラー7866 データベースが開いています」というようなメッセージが出て処理ができません。 なにかいい方法はないでしょうか よろしくお願いいたします。

  • VB6にてHEXコード「EE」をファイルに書きたい。

    VB6を使用して、HEXコードの「EE」をテキストファイルに出力しようと考えています。 私が確認したところ HEXコードの「DF」は、Chr(&HDF)にて出力できるのですが、 HEXコードの「E0」以降はうまく出力できません。 どなたかお解りになる方ご教授を、よろしくお願いします。

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • 『ファイルへ出力』に関して

    VB6.0で大量に『ファイルへ出力』を行う場合、毎回ファイル名を入力するのが大変です。 これをVBでファイル名を設定する方法はないのでしょうか? 宜しくお願い致します。

  • MIDIとWAVの統合? CUBASE LE

    DTM初心者です。 ZOOM[G2.1]とそれに付属されている[CUBASE LE]に ネットから拾ったMIDIと、G2.1から自分が演奏し録音したギターの音があります。 これを両方の音を合わせたMIDIファイルやWAVファイル(音源ファイルなら何でもいいです) としてPCに保存したいのですが、 MIDI出力とするとMIDI音源のみ、 WAV出力とするとギターの音のみで保存されてしまいます。 説明書を読んでも非常に分かりづらく・・・ 一番簡単に両方合わさった音楽ファイルとするには どうすればいいのでしょうか。

  • ファイル出力

    こんにちは。 VB6.0にて、ファイルの出力についてお聞きしたい事があります。 VB側からDBを見にいき、指定したテーブルのテーブル定義をテキストファイルとして出力したいのですが、プログラミング方法がわかりません。ご存知な方教えて頂けないでしょうか? DBはOracle9iです。  宜しくお願い致します。

  • WindowsでEUCコードのファイルは出力できますか?

    Windowsのプログラム(VBなど)でEUCコードのファイルを出力することはできるのでしょうか? 出力するファイルに全角文字はありません。 プログラム以外の方法でも、簡単な方法があれば 教えて下さい。 よろしくお願い致します。

  • 【Sonar LE】でMIDIが再生できない

    EDIROL UA-25に付属していた、Sonar LEと電子ピアノを使って DTMをしようと考えています。 Sonar LEのdemo曲を再生するとMIDIのトラックだけ音が出ない 状態なのですが、音を出す方法を教えていただけないでしょうか? 環境は OS:Windows XP MIDIインターフェース:UA-25 シーケンサソフト:Sonar LE Windows側の設定 音の再生:EDIROL UA-25 録音:EDIROL UA-25 MIDI音楽の再生:EDIROL UA-25 Sonar LE側の設定 MIDIデバイス入力・出力:EDIROL UA-25 電子ピアノ(YAMAHA P-60)をMIDIケーブルで接続し鍵盤を叩くと 画面右下にある通知領域のピアノのようなインジケータは 点滅はするのですが音は出ません。 この状態で録音すると、トラックに表示(ドット?)が記録されるので 録音はできていると思うのですが、これも再生しても音は出ません。 要領を得ない質問ですが、ご存知の方がいらっしゃいましたら 知恵をお貸しください。 ※トラックの設定についてイマイチ理解できていないので これについても、教えていただけないでしょうか?

  • VBでwmaファイルを再生する方法

    VBでwmaファイルを再生したいのですが、できません。いろいろな方法を試してみました。midiやwave は可能でしたが、wmaはだめでした。 どなたか実績のある方法をご伝授ください。 よろしくお願いいたします。 ちなみに今取り組んでいるOSはXPです。

専門家に質問してみよう