есть файл (файл.txt), состоящий из строк, например:
astring
bstring
cstring
dstring
надо вставить новую строку "sdgdfgs" перед определенной, например, перед строкой "cstring"
Dim fso As New FileSystemObject
Dim script1 As TextStream
Dim i,j As Integer 'i под кол-во строк, а j просто для цикла...
Dim ar() As String 'массив для строк... ЗЫ: если не известно кол-во
'всех ячеек в массиве, то оставь пустые скобки,
'потом дальше в коде сделаем redim
Private Sub Command1_Click()
On Error Resume Next
Set script1 = fso.OpenTextFile(App.Path & "\YOURFILE.txt", ForReading, False)
'-----Lines-----
Do While Not script1.AtEndOfStream 'сначала посчитаем кол-во строк
script1.ReadLine
i = i + 1
Loop
script1.Close
ReDim ar(i) ' i-это кол-во всех строк, теперь сделаем redim массива...
'----ToArray----- теперь заносим каждую строку в массив
Set script1 = fso.OpenTextFile(App.Path & "\YOURFILE.txt", ForReading, False)
For j = 0 To i - 1
ar(j) = script1.ReadLine
Next j
script1.Close
'============
'всё, уже есть массив со строками и теперь
'можем извращаться над ним... циклом например
'for j=0 to i-1 'это просто так тут написал...пример, как к каждой строке
' 'приписать в конец "!!!"
' ar(j)=ar(j) & "!!!"
'next j
'============
End Sub
Private Sub Command2_Click()
On error resume next
'----WritingNewFile----- теперь из массива всё записываем в файл-------
Set script1 = fso.OpenTextFile(App.Path & "\YOURFILE.txt", ForWriting, False)
For j = 0 To i - 1
'ниже описанный IF не проверял... пишу сразу в форуме...
if ar(j+1) = "cstring" then script1.write "sdgdfgs" 'вот например
'вставляем код перед строкой...
'запись...
script1.Write ar(j) 'вот теперь всё построчно записываем в файл...
Next sch1
script1.Close
End If
MsgBox "YEAH!", vbInformation 'усё..
End Sub
Сейчас этот форум просматривают: Google-бот и гости: 93