2017-02-23 8 views
1

おはよう

私は4行の "txt"という名前のtxtファイルを持っています。 私の問題は、最後の3行の最後の2語を削除したいということです。txtファイルの最後の単語を削除する

"vol" 
"vui one high" one high 
"vui one front " two high 
"vuil high front "  three high 

および削除するには、言葉が引用符の後、2:

これは、txtの中に私のテキストです。


私は、コードを持っていますが、現時点では、それはここでしか言葉 を交換することができますが、私のコードの先頭である:そのあなたができるすべてのヘルプ/アドバイス

Sub CommandButton1_Click() 

    Dim sBuf As String 
    Dim sTemp As String 
    Dim iFileNum As Integer 
    Dim sFileName As String 

    ' Edit as needed 
    sFileName = "C:\Users\bquinty\Desktop\txt.txt" 

    iFileNum = FreeFile 
    Open sFileName For Input As iFileNum 

    Do Until EOF(iFileNum) 
    Line Input #iFileNum, sBuf 
    sTemp = sTemp & sBuf & vbCrLf 
    Loop 
    Close iFileNum 

    sTemp = Replace(sTemp, "word to remplace", "word wanted") 

    'Save txt file as (if possible) 

    iFileNum = FreeFile 
    sFileName = "C:\Users\bquinty\Desktop\txt.txt" 
    Open sFileName For Output As iFileNum 

    Print #iFileNum, sTemp 

    Close iFileNum 


    End Sub 

感謝ください。

+0

あなたは[ 'split'](http://www.exceltrick.com/formulas_macros/vba-split-function/を使用することができます)関数を使って 'sTemp'を1行に分割します(デリミタはvbcrlfでなければなりません。また、vbcrはtxtファイルによって異なります)。最後の2行を1つの単語に分割するために再度分割します(区切り文字は空白です)。その後、最後の2つのエントリを削除して文字列を戻してください。 –

+0

ファイル内には4行しか存在しないのでしょうか?ファイルに引用符の間のデータのみが含まれるようにしたい場合や、最後の2つだけを削除したいという単語がさらにたくさんある場合は、 – CLR

答えて

2

始まりと答えRead/Parse text file line by line in VBA

を使用して:

Sub test() 

    Dim FileNum As Integer 
    Dim DataLine As String 
    Dim newDataLine() As String 

    FileNum = FreeFile() 
    Open "c:\Delete_NOW.txt" For Input As #FileNum 

    While Not EOF(FileNum) 
     Line Input #FileNum, DataLine 
     newDataLine = Split(DataLine, " ") 
     If UBound(newDataLine, 1) > 3 Then ReDim Preserve newDataLine(UBound(newDataLine, 1) - 3) 
    Wend 
End Sub 
+0

あなたの答えをありがとう、私はあなたのコードを私のproblemeに適合させたが、それは何もしない:( – babou

+0

あなたのtxt構造があなたのポストにあるならば、このコードは行の最後から最後の3単語を削除する。それぞれのnewDataLineを変数に保存し、すべてをファイルに保存する必要があります。 – tretom

関連する問題