「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:2
昨日:2
総数:2218
現在:5


バイナリファイルの出力

ページOpenOffice.org FAQの登録ページ
投稿者匿名
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2008-06-02 18:30:44 (月)
OSWindows XP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

下記のマクロを実行すると
TEST文字列の後ろにゴミ値(何の値かわからない)が
一緒にファイルに出力されてしまいます。

文字列だけ出力したいのですが
出来ないのでしょうか?

いろいろ調べてみたのですが
バイナリファイルの出力は詳細な説明が
見つけられなかったもので・・・

'============================================
'質問マクロ

Dim hFileHandle As Integer
Dim sFileURL As String
sFileURL = ConvertToURL("c:/test.bin")

hFileHandle = FreeFile
Open sFileURL for Binary as #hFileHandle

Print #hFileHandle, "TEST"

Close #hFileHandle

'============================================


取敢えず

ponkan (2008-06-02 19:29:02 (月))

取敢えず、ヘルプを貼って見たりする。

Open ステートメント [実行時] データチャネルを開きます。
構文:
Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]
パラメータ:
ファイル名:開こうとするファイルの名前とパス。存在しないファイルを読み取ろうとすると (Access = Read)、エラーメッセージが表示されます。存在しないファイルを書き込もうとすると (Access = Write)、新しいファイルが作成されます。
モード: ファイルモードを指定するキーワード。有効な値:Append (順編成ファイルに追加する)、Binary (データは、Get および Put を使用してバイトによってアクセスできる)、Input (読み取り用のデータチャネルを開く)、Output (書き込み用のデータチャネルを開く)、および Random (関連ファイルを編集する)。
IOMode: アクセスの種類を定義するキーワードです。有効な値には、Read (読み取り専用)、Write (書き込み専用)、Read Write (読み取りと書き込み) があります。
Protected:オープン後のファイルのセキュリティステータスを指定するキーワード。これには下記の値を指定できます。Shared (ファイルを他のアプリケーションでも開けるようにする)、Lock Read (ファイルを読み取り保護する)、Lock Write (ファイルを書き込み保護する)、Lock Read Write (ファイルアクセスを禁止する)。
FileNumber:使用可能なデータチャネル番号を示す 0 から 511 までの整数表式。オープン後のファイルに対しては、データチャネルを通じてアクセスコマンドを渡せます。ファイル番号は、Open ステートメントの直前で FreeFile 関数を実行して取得する必要があります。
DatasetLength: ランダムアクセスファイル用にレコード長を設定します。


因みに、バイナリファイルに何を書込みするのか判らないですが
あまり意味が無いようにも思いますが・・・
バイナリファイルをエディタなんかで開いても、判読は不能ですよ?

sub test774
fno = Freefile
rem Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength] 
Open "c:\test.bin" For Binary As fno Len = 32
rem Put #fno,[position],Variable rem ←ヘルプを見ましょう。
Close #fno
end sub

Print の代わりに Put

はにゃ? (2008-06-02 19:34:49 (月))

Print の代わりに Put を使って次のようにすればへんなものが付いてこないと思います。

Put #hFileHandle, , "TEST"

解決しました

匿名 (2008-06-02 20:27:26 (月))

一度、Putにして試したのですが
エラーが出てしまい使えないものだと勘違いしていました。

試したときの引数が間違ってました。

ponkanさん、はにゃ?さん
ありがとうございました。

お名前:
題名: