Помогите с файлом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ира
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 15.11.2006 (Ср) 8:01

Помогите с файлом

Сообщение Ира » 15.11.2006 (Ср) 8:27

есть файл File.txt со следующими строками

1
127
5
HEADER
11
12

надо вместо строки HEADER записать QQQ
я написала так

Dim i As Integer
Dim str As String
Dim line As Integer

Open "c:\File.txt" For Input As #1
For i = 1 To 9
Line Input #1, str
If (StrComp(str, "HEADER", 1)) = 0 Then
Exit For
End If
Next i
line = i
Close #1

Open "c:\File.txt" For Random As #1 Len = 10
Put #1, line, "QQQ" & Chr(13) & Chr(10)
Close #1

Что-то никак Помогите, если можете, а то прямо уже наваждение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.11.2006 (Ср) 9:29

Мдя...
Код: Выделить всё
Dim I0 As Long, I As Long, S As String, buff As String
Open "file.txt" For Binary As #1
buff = Space$(LOF(1))
Get #1, , buff
Close #1
Open "file.txt" For Output As #1
I0 = 1
Do Until I0 > Len(buff)
  I = InStr(I0, buff, vbNewLine)
  If I = 0 Then I = Len(buff) + 1
  S = Mid$(buff, I0, I-I0)
  I0 = I + Len(vbNewLine)
  Select Case S
    Case "HEADER"
      S = "QQQ"
  End Select
  Print #1, S
Loop
Close #1
Lasciate ogni speranza, voi ch'entrate.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 15.11.2006 (Ср) 10:01

Ира, Наверное вот так:
Код: Выделить всё
Dim i As Integer
Dim str As String, sbuff As String

Open "c:\File.txt" For Input As #1
Do While Not EOF(1)
    Line Input #1, str
    If (StrComp(str, "HEADER", 1)) <> 0 Then
        sbuff = sbuff & IIf(Len(sbuff) > 0, vbCrLf, "") & str
    Else
        sbuff = sbuff & IIf(Len(sbuff) > 0, vbCrLf, "") & "QQQ"
    End If
Loop
Close #1

Open "c:\File.txt" For Output As #1
Print #1, sbuff
Close #1
Программисты не глючат - глючат компиляторы...

Ира
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 15.11.2006 (Ср) 8:01

Сообщение Ира » 15.11.2006 (Ср) 10:10

Я пребываю в шоке, т.к. кое-как добралась-то до форума (интернет чужой) и вообще не надеялась, что кто-то снизойдет до меня.
И вдруг все получилось!!!!!! Я человек нервно-паралитический и сейчас у меня из глаз струится гидрохлорат натрия. Потому что я буксовала уже 3 дня. ГРАНД МЕРСИ за помощь!


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

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

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

    TopList