如何跳过txt文件中的一行
How can I skip one line in a txt file
我有一个名为 inFile
的 txt
文件。使用 VBA,我将其逐行复制到名为 outFile
.
的新 tx
t 文件中
我有一个 Excel 作品sheet。在这个 sheet 中,我有一个字符串和一个数字。该数字是新字符串需要进入名为 outFile
.
的 txt
的行
我的代码有 95% 有效。
我的问题: 在代码复制从 txt
调用 inFile
到 outFile
的行后,在我复制新的字符串从 Excel sheet 到右边的行。
当我返回将另一行从名为 inFile
的 txt
复制到名为 outFile
的 txt
时。
代码复制了我刚刚用新字符串替换的行。
我正在寻找一种在将行从 inFile
复制到 outFile
时跳过一行的方法。
P.S.
cell(f,13)
是放置新字符串的行号的位置。
cell(f,17)
是应该放置新字符串的地方。
Sub Update_file()
Dim FolderName As Double
Dim data1, data2, IfExist, inFile, outFile As String
Dim f As Integer
Dim LineNumber As Long
f = 2
LineNumber = 0
Do Until IsEmpty(Cells(f, 2))
IfExist = "L:\" & Cells(f, 2) & "\COMPANY.bat"
If Not Dir(IfExist) = "" Then
inFile = "L:\" & Cells(f, 2) & "\COMPANY.bat"
Open inFile For Input As #1
outFile = "L:\" & Cells(f, 2) & "\COMPANY_NEW.bat"
Open outFile For Output As #2
If Not IsEmpty(Cells(f, 11)) Then
LineNumber = LineNumber + 1
If LineNumber = Cells(f, 13) Then
'aaa:
data2 = Cells(f, 17)
Print #2, data2
LineNumber = LineNumber + 1
GoTo bbb
Else
Do Until EOF(1) Or Cells(f, 13) = LineNumber
'bbb:
Debug.Print LineNumber
Line Input #1, data1
data2 = Trim(data1)
Print #2, data2
LineNumber = LineNumber + 1
If LineNumber = Cells(f, 13) Then
GoTo aaa
End If
Loop
End If
End If
LineNumber = 0
Close #1
Close #2
Else: MsgBox "äçáøä " & Mid(inFile, 4, 5) & " ìà ÷ééîú"
End If
f = f + 1
Loop
End Sub
如果我没理解错的话,你总是想写入文件#2;来自文件 #1 的行,或者来自 Cells(f, 17) 的行,如果我们在目标行号处。
为什么不只是这个呢?
inFile = "L:\" & Cells(f, 2) & "\COMPANY.bat"
Open inFile For Input As #1
outFile = "L:\" & Cells(f, 2) & "\COMPANY_NEW.bat"
Open outFile For Output As #2
If Not IsEmpty(Cells(f, 11)) Then
LineNumber = LineNumber + 1
Do Until EOF(1)
Debug.Print LineNumber
Line Input #1, data1
data2 = Trim(data1)
If LineNumber = Cells(f, 13) Then
data2 = Cells(f, 17)
End If
Print #2, data2
LineNumber = LineNumber + 1
Loop
End If
LineNumber = 0
Close #1
Close #2
我有一个名为 inFile
的 txt
文件。使用 VBA,我将其逐行复制到名为 outFile
.
tx
t 文件中
我有一个 Excel 作品sheet。在这个 sheet 中,我有一个字符串和一个数字。该数字是新字符串需要进入名为 outFile
.
txt
的行
我的代码有 95% 有效。
我的问题: 在代码复制从 txt
调用 inFile
到 outFile
的行后,在我复制新的字符串从 Excel sheet 到右边的行。
当我返回将另一行从名为 inFile
的 txt
复制到名为 outFile
的 txt
时。
代码复制了我刚刚用新字符串替换的行。
我正在寻找一种在将行从 inFile
复制到 outFile
时跳过一行的方法。
P.S.
cell(f,13)
是放置新字符串的行号的位置。
cell(f,17)
是应该放置新字符串的地方。
Sub Update_file()
Dim FolderName As Double
Dim data1, data2, IfExist, inFile, outFile As String
Dim f As Integer
Dim LineNumber As Long
f = 2
LineNumber = 0
Do Until IsEmpty(Cells(f, 2))
IfExist = "L:\" & Cells(f, 2) & "\COMPANY.bat"
If Not Dir(IfExist) = "" Then
inFile = "L:\" & Cells(f, 2) & "\COMPANY.bat"
Open inFile For Input As #1
outFile = "L:\" & Cells(f, 2) & "\COMPANY_NEW.bat"
Open outFile For Output As #2
If Not IsEmpty(Cells(f, 11)) Then
LineNumber = LineNumber + 1
If LineNumber = Cells(f, 13) Then
'aaa:
data2 = Cells(f, 17)
Print #2, data2
LineNumber = LineNumber + 1
GoTo bbb
Else
Do Until EOF(1) Or Cells(f, 13) = LineNumber
'bbb:
Debug.Print LineNumber
Line Input #1, data1
data2 = Trim(data1)
Print #2, data2
LineNumber = LineNumber + 1
If LineNumber = Cells(f, 13) Then
GoTo aaa
End If
Loop
End If
End If
LineNumber = 0
Close #1
Close #2
Else: MsgBox "äçáøä " & Mid(inFile, 4, 5) & " ìà ÷ééîú"
End If
f = f + 1
Loop
End Sub
如果我没理解错的话,你总是想写入文件#2;来自文件 #1 的行,或者来自 Cells(f, 17) 的行,如果我们在目标行号处。
为什么不只是这个呢?
inFile = "L:\" & Cells(f, 2) & "\COMPANY.bat"
Open inFile For Input As #1
outFile = "L:\" & Cells(f, 2) & "\COMPANY_NEW.bat"
Open outFile For Output As #2
If Not IsEmpty(Cells(f, 11)) Then
LineNumber = LineNumber + 1
Do Until EOF(1)
Debug.Print LineNumber
Line Input #1, data1
data2 = Trim(data1)
If LineNumber = Cells(f, 13) Then
data2 = Cells(f, 17)
End If
Print #2, data2
LineNumber = LineNumber + 1
Loop
End If
LineNumber = 0
Close #1
Close #2