Удаление строк из файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Удаление строк из файла

Сообщение Ramzes » 07.01.2005 (Пт) 13:47

Знаю с чего начинаеться строка например
моя строка

как мне ее удалить из файла

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.01.2005 (Пт) 14:08

Код: Выделить всё
Dim S$, Arr$(), I&
Open "C:\MyFile.txt" For Input As #1
S = Input(LOF(1), 1)
Close #1
Arr = Split(S, vbCrLf)
For I = LBound(Arr) To UBound(Arr)
If Left(Arr(I), Len("моя строка")) = "моя строка" Then Arr(I) = ""
Next
S = ""
For I = LBound(Arr) To UBound(Arr)
If Arr(I) <> "" Then S = S & Arr(I) & vbCrLf
Next
S = Left(S, Len(S) - 1)
Open "C:\MyFile.txt" For Output As #1
Print #1, S
Close #1

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

Сообщение RayShade » 08.01.2005 (Сб) 15:53

Только надо учесть, что пример AAZ можно использовать только если в файле нет других строк. В противном случае все остальные строки будут потеряны.
I don't understand. Sorry.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.01.2005 (Сб) 19:27

RayShade, ты неправ. Код AAZ работает корректно.
Изображение

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 12.01.2005 (Ср) 17:38

2 A.A.Z. Спасибо, ты как всегда в точку.

А вот мой код :(
Код: Выделить всё
Dim myArr() As String
Dim arVal As Integer
Private Sub Form_Load()
arVal = 0
Open "c:\1.txt" For Input As #1
    Do Until EOF(1)
    Line Input #1, t
    tt = tt + t & vbCrLf
    arVal = arVal + 1
    Loop
Close #1

ReDim myArr(0 To arVal)
    arVal = 0
    Open "c:\1.txt" For Input As #1
        Do Until EOF(1)
        Line Input #1, w
        myArr(arVal) = w
        arVal = arVal + 1
    Loop
For e = 0 To arVal
    If myArr(e) = "Text1" Then
        myArr(e) = "FuckIt"
    End If
Next
   
    For q = 0 To arVal
        Text1.Text = Text1.Text & myArr(q) & vbCrLf
    Next
End Sub


Дурной конечно, но код!

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

Сообщение alibek » 13.01.2005 (Чт) 8:54

Ну вы, блин, даете... (c).
А не лучше ли по другому?
Код: Выделить всё
Dim FN1 As Integer, FN2 As Integer, S As String
FN1 = FreeFile
Open "file1.txt" For Input As #FN1
FN2 = FreeFile
Open "~file" For Output As #FN2
While Not EOF(FN1)
  Line Input #FN1, S
  Select Case S
    Case "Tag String"
    Case Else
      Print #FN2, S
  End Select
Wend
Close #FN1, #FN2
Kill "file1.txt"
Name "~file" As "file1.txt"

И быстрее, и памяти меньше кушает.
Lasciate ogni speranza, voi ch'entrate.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.01.2005 (Чт) 11:00

Да моему приложению пофигу на память :D оно маленько и много не съест :lol:


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

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

Сейчас этот форум просматривают: YaCy [Bot] и гости: 18

    TopList  
cron