[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/08/31(Tue) 09:36
投稿者名:Mappy
Eメール:
URL :
タイトル:
テキストデータの結合
DOSコマンドを使うと文字化けして出力されてしまいます。
DOSコマンド以外の方法とかはないのでしょうか?
よろしくお願いいたします。

投稿時間: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

投稿時間:2004/08/31(Tue) 13:03
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: テキストデータの結合
> DOSコマンドを使うと文字化けして出力されてしまいます。

どのような場合に文字化けするのでしょうか?
ここでも紹介しておりますが、CSVファイルでもTXTファイルでも文字化けを
確認した事がないのですが。

投稿時間:2004/08/31(Tue) 13:45
投稿者名:Mappy
Eメール:
URL :
タイトル:
Re: テキストデータの結合
早速のResありがとうございます。

TXTに書かれているものが既にCSVで書かれているため、
WRITEやAPPENDを使うとCSVにされているデータが、
さらにCSV化されていまうため、
WRITEやAPPENDを使わずにファイルの結合を行いたいのです。
何か回避方法はありませんでしょうか?

文字化けについては、ファイル名が違ったり、
テキストに■のようなものが羅列されたりします。

投稿時間:2004/08/31(Tue) 14:04
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^2: テキストデータの結合
> TXTに書かれているものが既にCSVで書かれているため、
> WRITEやAPPENDを使うとCSVにされているデータが、
> さらにCSV化されていまうため、
> WRITEやAPPENDを使わずにファイルの結合を行いたいのです。

意味わかんないです。
kazuやんさんが書いているように、AppendでPrint#すれば何も問題ないと思いますが。

> 文字化けについては、ファイル名が違ったり、
> テキストに■のようなものが羅列されたりします。

ちなみにどんなDOSコマンドで結合してますか?
私はあまりDOSには詳しくありませんが、この辺の情報も書いた方が的確な回答を得られると思いますよ。

投稿時間:2004/08/31(Tue) 15:45
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^2: テキストデータの結合
> 文字化けについては、ファイル名が違ったり、
ファイル名が違ったり とはどういう事でしょうか?

> テキストに■のようなものが羅列されたりします。
どの文字が■に文字化けするのでしょうか?
何で開いて見たときなのでしょうか?