• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルの先頭に特殊コードを置いてファイルを作るには)

ファイルの先頭に特殊コードを置いてファイルを作るには

このQ&Aのポイント
  • UNICODE指定したテキストファイルを作成する方法についてお伺いします。メモ帳でファイルのプロパティを確認すると、サイズは2バイト、ディスク上のサイズは4KBとなっています。
  • ASCで255、254と表示される特殊コードの後にUNICODEのデータを並べて記述するプログラムを書きたいのですが、うまくいかず困っています。
  • 質問です。ファイルの先頭に特殊コードを置き、その後にUNICODEのデータを追加するプログラムを書きたいのですが、方法がわかりません。お助けください。

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

  • ベストアンサー
回答No.2

こんなかんじでどうですか。 Private Sub Command1_Click() Dim intFileNo As Integer Dim bytUnicodeID(1) As Byte Dim bytData() As Byte Dim strData As String bytUnicodeID(0) = &HFF bytUnicodeID(1) = &HFE strData = "AAAあああ" intFileNo = FreeFile ' 必要に応じてファイルを消すか中身を消してください。 Open "c:\temp\test.txt" For Output As #intFileNo Close #intFileNo ' UNICODEで出力 Open "c:\temp\test.txt" For Binary As #intFileNo Put #intFileNo, , bytUnicodeID bytData = strData Put #intFileNo, , bytData Close #intFileNo End Sub

参考URL:
http://support.microsoft.com/kb/193540/ja
tach_ei
質問者

お礼

この内容でできました。support.microsoftもこれから探すようにします。ありがとうございます。m(_ _)m

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#22222
noname#22222
回答No.1

普通にテキストファイルに出力すると、AAAAAがロロに化けるので困っています。 メモ帳で開いた時に、AAAAAになるようにするには? という質問でしょうか? であれば、 Private Sub コマンド0_Click()   FileWrite "c:\temp\aaa.txt", Chr$(255) & Chr$(254) & StrConv("AAAAA", vbUnicode) End Sub Public Function FileWrite(ByVal FileName As String, _              ByVal Text As String) As Boolean On Error GoTo Err_FileWrite   Dim fso As FileSystemObject   Dim txs As TextStream      Set fso = New FileSystemObject   Set txs = fso.CreateTextFile(FileName, True)   txs.Write Text   FileWrite = True Exit_FileWrite:   Exit Function Err_FileWrite:   MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ"   Resume Exit_FileWrite End Function

tach_ei
質問者

補足

書き込みありがとうございます。 Print #1, Chr$(255) & Chr$(254) で書き込み方法があるのですね。これで試しましたが、目的のファイルはこれを書き込んでもメモ帳には出てこないようにしたいのですが、この方法では半角スペースの黒白反転表示で表示されてしまいます。 この状態で文字を貼り付けるとChr$(255) & Chr$(254)の前に挿入されてしまいます。Chr$(255) & Chr$(254)に相当する部分が常にファイルの先頭になるようにしたいのですが・・・

すると、全ての回答が全文表示されます。

関連するQ&A