Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск текстовой строки в файле / 7 сообщений из 7, страница 1 из 1
22.06.2005, 19:55:11
    #33129924
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
Есть файл. Необходимо выполнить поиск "абвг" в этом файле.

Как это сделать (на VB-Script, API или как-нибудь еще)?
...
Рейтинг: 0 / 0
22.06.2005, 20:01:14
    #33129930
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Command1_Click()
    Dim szBuffer As String
    
    
    
    Open "C:\Autoexec.bat" For Input As # 1 
        While Not EOF( 1 )
            Line Input # 1 , szBuffer
            MsgBox InStr(szBuffer, "abcd")
        Wend
    Close # 1 
End Sub

ЗЫ
Надо рубрику для новичков завести
...
Рейтинг: 0 / 0
22.06.2005, 20:12:40
    #33129945
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
Если в файле:
1-я строка: аб
2-я строка: вг
то "абвг" не находится таким образом.

Есть ли другой способ или надо перебирать по символу весь файл с учетом длины текстовой строки?
...
Рейтинг: 0 / 0
23.06.2005, 00:20:22
    #33130118
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
Если вам по какой-то причине мешают символы перехода на новую строку, так уберите их из текста, например
str=Replace(str,vbCrLf,"")
...
Рейтинг: 0 / 0
23.06.2005, 10:40:26
    #33130523
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Command1_Click()
    Dim szBuffer As String
    Dim szTemp As String
    
    
    
    Open "C:\coreappschk.txt" For Input As # 1 
        While Not EOF( 1 )
            Line Input # 1 , szTemp
            
            szBuffer = szBuffer & szTemp
        Wend
    Close # 1 
    
    MsgBox szBuffer Like "ab*cd"
End Sub

Оператор Like поможет нам быстро определить, есть ли в строке шаблон. Но он не скажет, где именно. (можно также a*bcd, abc*d)
Чтение szBuffer = szBuffer & szTemp происходит без vbNewLine, так что не надо удалять переходы на новую строку.
...
Рейтинг: 0 / 0
23.06.2005, 12:09:41
    #33130880
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
RegExp
...
Рейтинг: 0 / 0
23.06.2005, 12:52:51
    #33131029
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск текстовой строки в файле
arseny
Чтение szBuffer = szBuffer & szTemp происходит без vbNewLine, так что не надо удалять переходы на новую строку.

Только стоит учитывать, что это будет очень медленно работать.
Мегабайтный тексовый файл обрабатывается 8 с, в то время как при использовании Replace потребовалось около одной десятой секунды.
Разница в скорости почти на 2 порядка
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск текстовой строки в файле / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]