добавить строку в файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Chuvak
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 102
Зарегистрирован: 11.03.2003 (Вт) 8:39
Откуда: Russia, Ozёrsk

добавить строку в файл

Сообщение Chuvak » 14.04.2003 (Пн) 6:19

есть файл (файл.txt), состоящий из строк, например:

astring
bstring
cstring
dstring

надо вставить новую строку "sdgdfgs" перед определенной, например, перед строкой "cstring"

Damage
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 06.04.2003 (Вс) 18:31
Откуда: Москва

Сообщение Damage » 14.04.2003 (Пн) 8:37

открыть файл, загнать всё содержимое в массив, сохренить в файл (во время сохранения по условию вставить нужную строку)

Chuvak
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 102
Зарегистрирован: 11.03.2003 (Вт) 8:39
Откуда: Russia, Ozёrsk

Сообщение Chuvak » 14.04.2003 (Пн) 8:53

у меня мысля в эту же сторону шла

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 14.04.2003 (Пн) 11:12

FSO, однако! :D работает и мегабайтными файлами... быстро... :lol:
Код: Выделить всё
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

P.S. Незабудь подключить FileSystemObject в меню Project->Preferences :lol:
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 14.04.2003 (Пн) 11:15

А можно было прочитать файл методом ReadAll а в массив запихать с помощью Split...

Но это я так, к слову :wink:

Chuvak
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 102
Зарегистрирован: 11.03.2003 (Вт) 8:39
Откуда: Russia, Ozёrsk

Сообщение Chuvak » 15.04.2003 (Вт) 6:32

тему можно закрыть

moderator
Модератор
Модератор
 
Сообщения: 1896
Зарегистрирован: 10.12.2001 (Пн) 18:11
Откуда: Украина, Харьков

Сообщение moderator » 15.04.2003 (Вт) 21:06

Как скажешь...
Модератор
http://www.vbstreets.ru / moderator@vbstreets.ru

... Почетные награды: [*], [+], [!]. Все еще впереди...

ASD
Модератор
Модератор
Аватара пользователя
 
Сообщения: 1758
Зарегистрирован: 07.12.2001 (Пт) 21:08
Откуда: Russia

Сообщение ASD » 16.04.2003 (Ср) 10:18

Хоть темя и закрыта но от себя добавлю.
На кой тут нужен FSO если тоже самое можно сделать
через Line Input? И не юзать лишнюю библу...
Moderator VBStreets
---------------------------


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 50

    TopList