投稿日 | : 2004/08/31(Tue) 10:07 |
投稿者 | : kazuやん |
Eメール | : |
URL | : |
タイトル | : Re: テキストデータの結合 |
> DOSコマンドを使うと文字化けして出力されてしまいます。
> DOSコマンド以外の方法とかはないのでしょうか?
> よろしくお願いいたします。
単純に2つのファイルを開いて新たなファイルに書き込むのはどうでしょうか?
「プロジェクト」-「参照設定」-「Microsoft Scripting Runtime」にチェック
Sub main()
'変数宣言
Dim file1 As String
Dim file2 As String
Dim file3 As String
Dim r_rec As String
file1 = App.Path & "\A.txt"
file2 = App.Path & "\B.csv"
file3 = App.Path & "\C.txt"
'FileSystemObject生成
Set FSO = CreateObject("Scripting.FileSystemObject")
'ファイル存在チェック
If FSO.FileExists(file1) = False Then
MsgBox FSO.GetFileName(file1) & "ファイルが存在しません!!", vbInformation, "エラー"
Set FSO = Nothing
Exit Sub
End If
Set ObjTs = FSO.OpenTextFile(file1, ForReading, True)
'-------------------------------------------------------------
' ファイルの末尾に到達するまで
'-------------------------------------------------------------
Do While ObjTs.AtEndOfStream <> True
'1行読み込み
r_rec = ObjTs.ReadLine
'ファイルへ書き込み
Call File_Write(file3, r_rec)
Loop
Set ObjTs = Nothing
If FSO.FileExists(file2) = False Then
MsgBox FSO.GetFileName(file2) & "ファイルが存在しません!!", vbInformation, "エラー"
Set FSO = Nothing
Exit Sub
End If
Set ObjTs = FSO.OpenTextFile(file2, ForReading, True)
'-------------------------------------------------------------
' ファイルの末尾に到達するまで
'-------------------------------------------------------------
Do While ObjTs.AtEndOfStream <> True
'1行読み込み
r_rec = ObjTs.ReadLine
'ファイルへ書き込み
Call File_Write(file3, r_rec)
Loop
Set ObjTs = Nothing
Set FSO = Nothing
'=============================================================
' ファイル書き込み
' 引数:
' file_name : ファイル名
' str : 書き込む内容
' 戻り値:
' なし
'=============================================================
Private Function File_Write(file_name As String, str As String)
'ファイル作成
Open file_name For Append As #1
Print #1, str
Close #1
End Function