|
■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
何かいいサンプルコードがあったり、良案があったりしたらおしえてください。
|