Top > OOobbs > 96
  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
  • Go to OOobbs/96.

** [[OOobbs/96]] [#uabfa37a]
-''サマリ'': ファイルから8ビットずつ読み込む方法
-''環境'': Calc
-''状態'': 解決
-''投稿者'': [[Kuma]]
-''投稿日'': 2006-03-30 (木) 16:58:12

*** 質問 [#a3f23694]
OOo2.0.1で指定ファイルのデータを8ビットずつ読み込み、calcのセルにHEX表示するマクロを下記の様に作りました。
ExcelVBAの場合は問題無く動作して表示出来たのですが、calcでは2行目の

Dim bit8 As Byte

でエラー『不明なデータの種類』になってしまいます。calcでは8ビットずつ読み込む方法はどの様にするのでしょうか。宣しくお願い致します。

Sub CommandButton1_Click()
    Dim bit8 As Byte
    Dim r As Integer, n As Integer
    Dim dumpdata As String, bitdata As String
    oSheet1=ThisComponent.getSheets.getByName("操作シート")   
    oSheet2=ThisComponent.getSheets.getByName("出力シート")   
    filepath =oSheet1.getCellRangeByName("b10").String
    If filepath = "" Then
       MsgBox "ファイルパスが設定されていません", 16
       '[b10].Select
       Exit Sub
    End If
    Open filepath For Binary Access Read As #1
    r = 1
    n = 0
    dumpdata = ""
    Do
       Get #1,,bit8
       If bit8 < 16 Then
          bitdata = "0" & Hex$(bit8)
       else
          bitdata =Hex$(bit8)
       End If
       dumpdata = dumpdata & bitdata & " "
       If EOF(1) = True Then
          oSheet2.getCellByPosition(0,r-1).String = dumpdata
          r = r + 1
          Exit Do
       End If
       n = n + 1
       If n >= 24 Then
          oSheet2.getCellByPosition(0,r-1).String = dumpdata
          r = r + 1
          n = 0
          dumpdata = ""
       End If
    Loop
    Close #1
    MsgBox "完了しました。全部で" & Str(r - 1) & " 行有ります。",64
End Sub

*** 回答 [#f9b45c8a]
-やっと分かりました -- [[Kuma]] &new{2006-04-17 (月) 22:06:34};

下記のコードで読めました。

Sub ByteRead
   oFileAcc=CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
   oInputStream=CreateUnoService("com.sun.star.io.DataInputStream")
   vData=oFileAcc.openFileRead(sFileURL)'<---sFileURLは読み込みたいファイルのURL名
   oInputStream.setInputStream(vData)
   on error goto error1
   Do
     bit8=oInputStream.readByte() And &H000000FF
     MsgBox Hex$(bit8)
   Loop
 error1:
End Sub

#comment

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes