Программирование на 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, однако!
работает и мегабайтными файлами... быстро...
- Код: Выделить всё
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
...просто гламурный падонак...
_________________
reborn! v.2
_________________
-
RayShade
-
- Scarmarked
-
-
- Сообщения: 5511
- Зарегистрирован: 02.12.2002 (Пн) 17:11
- Откуда: Russia, Saint-Petersburg
-
RayShade » 14.04.2003 (Пн) 11:15
А можно было прочитать файл методом ReadAll а в массив запихать с помощью Split...
Но это я так, к слову
-
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
Как скажешь...
-
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