| 
                ■No18159 (魔界の仮面弁士 さん) に返信
> DRINK さんの環境は、
> >>> 分類:[VB.NET/VB2005]
> なのですから、.NET 対応の書籍を入手する必要があるかと。
ご忠告ありがとうございます。言われないと気付けない所でした。
これ以外にソースコードのサンプルが手に入らなかったら、VB6からの変換を勉強した方がいいでしょうか?
一応他のサンプルらしきものはあるんですが、どうもVB6のもののようなので無駄だとは思いますが載せておきます。
Public Function CnvMltVol(infnm As String, outfnm As String, outsize As Long) As Boolean
  Dim i          As Long
  Dim fnm        As String
  Dim fno        As Long
  Dim fno1       As Long
  Dim filesize   As Long
  Dim writesize  As Long
  Dim l          As Long
  Dim seqno      As Long
'** 異常終了セット
  CnvMltVol = False
'** 分割サイズチェック
  If outsize < 32000 Then
    MsgBox "分割サイズが 32000 未満です。" + Chr(10) + "32000 以上を指定して下さい。", 48, "CnvMltVol()"
    Exit Function
  End If
'** 入力ファイルオープン
  On Local Error Resume Next
  fno = FreeFile
  Open infnm For Input As fno Len = 32000
  If Err <> 0 Then
    MsgBox "入力ファイルのオープンに失敗しました。" + Chr(10) + " for input infnm = " + infnm, 48, "CnvMltVol()"
    Exit Function
  End If
  Close fno
  Err = 0
  fno = FreeFile
  Open infnm For Binary As fno Len = 32000
  If Err <> 0 Then
    MsgBox "入力ファイルのオープンに失敗しました。" + Chr(10) + "for binary infnm = " + infnm, 48, "CnvMltVol()"
    Exit Function
  End If
'** 分割処理
  i = InStrRev(outfnm, ".")
  If i = 0 Then Exit Function
  fnm = Left(outfnm, i - 1)
  seqno = 1
  fno1 = OpenMltFile(fnm, seqno, False)
  If fno1 = False Then
    Close fno
    Exit Function
  End If
  filesize = LOF(fno)
  writesize = 0
  Do Until filesize < 1
    l = filesize
    If l > 32000 Then l = 32000
    ReDim rec(l - 1) As Byte
    Get fno, , rec
    If writesize + l > outsize Then
      Close fno1
      seqno = seqno + 1
      fno1 = OpenMltFile(fnm, seqno, False)
      If fno1 = False Then
        Close fno
        Exit Function
      End If
      writesize = 0
    End If
    Put fno1, , rec
    writesize = writesize + l
    filesize = filesize - l
  Loop
'** ファイルクローズ
  Close fno1
  Close fno
  On Local Error GoTo 0
'** 正常終了セット
  CnvMltVol = True
End Function
何かいいサンプルコードがあったり、良案があったりしたらおしえてください。
  |