掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
列挙型をテキストに落とす際Nullが入るのを防ぐには? (ID:89751)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
用語は正確に書かないと、第三者には伝わりませんよ。(^_^;) > 列挙型をPutステートメントでテキストファイルに落としているのですが、 > Type Data 列挙型の宣言に使うのは「Enumステートメント」です。 Typeステートメントは「ユーザー定義型」の宣言ですね。 > 最後のallDataをPUTステートメントで > 書き出すと各構造体の先頭の項目(この場合はtitleとHead)の頭にNull値が > 入ってしまいます。 具体的な例が無いので、こちらで実験した結果を使って動作を説明します。 動作の詳細は、VBAヘルプのPutステートメントの解説などで確認してください。 '------- Option Explicit Private Type Data Head As String * 10 Detail As String * 10 Foot As String * 10 End Type Private Type PLData Title As String nData() As Data End Type Private Sub Test() Dim allData As PLData ReDim allData.nData(1) allData.Title = "タイトル" allData.nData(0).Head = String(10, "H") allData.nData(0).Detail = String(10, "D") allData.nData(0).Foot = String(10, "F") allData.nData(1).Head = String(10, "h") allData.nData(1).Detail = String(10, "d") allData.nData(1).Foot = String(10, "f") Dim FNo As Integer FNo = FreeFile() Open "C:\NewFile.bin" For Binary As #FNo Put #FNo, , allData Close #FNo End Sub '-------- この場合、バイナリの内容はこうなります。 00-01 08,00 → PLData.Titleのバイト数。今回は「8バイト」。 02-09 83,5E,83,43,83,67,83,8B → PLData.Titleの内容。今回は "タイトル"。 0A-0B 01,00 → PLData.nData()配列の次元数。今回は「1次元配列」。 0C-0F 02,00,00,00 → PLData.nData()配列の(1次元目の)要素数。今回は「要素数=2」。 10-13 00,00,00,00 → PLData.nData()配列の(1次元目の)下限添字値。今回は「LBound値=0」。 14-1D 48,48,48,48,48,48,48,48,48,48 → "HHHHHHHHHH" 1E-27 44,44,44,44,44,44,44,44,44,44 → "DDDDDDDDDD" 28-31 46,46,46,46,46,46,46,46,46,46 → "FFFFFFFFFF" 32-3B 68,68,68,68,68,68,68,68,68,68 → "hhhhhhhhhh" 3C-45 64,64,64,64,64,64,64,64,64,64 → "dddddddddd" 46-4F 66,66,66,66,66,66,66,66,66,66 → "ffffffffff"
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.