Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поиск по файлам.

403
10 августа 2006 года
ace lighting
411 / / 05.05.2006
Скажите, как сделать поиск нужного слова по файлам?
вот этот код результата не приносит :

Text3.Text = ""
On Error Resume Next
For x = 0 To File1.ListCount
File1.ListIndex = x
Open App.Path & "\" & File1.FileName For Input As x
Text2.Text = Input(LOF(x), x)
Close x
If InStr(qw, Text2.Text, Text1.Text) <> 0 Then 'Сверяется 2 текстовых поля
Text3.Text = Text3.Text & " " & Left(File1.FileName, 15)
Else
Text3.Text = "нет"
End If
Next x

...
15K
11 августа 2006 года
KAN
40 / / 08.08.2006
а как у тя qw задано?
282
11 августа 2006 года
Bard
481 / / 26.02.2006
[QUOTE=KAN]а как у тя qw задано?[/QUOTE]

Правильно подмечено! Если qw = 0 то по идее должна вылететь ошибка. Но по скольку прописан On Err... то она сответсвенно не вылетает.
Что бы наверняка проверить ето, зделай так:

Код:
Text3.Text = ""
For x = 0 To File1.ListCount - 1
File1.ListIndex = x
Open App.Path & "\" & File1.FileName For Input As x
Text2.Text = Input(LOF(x), x)
Close x
If InStr(qw, Text2.Text, Text1.Text) <> 0 Then
Text3.Text = Text3.Text & " " & Left(File1.FileName, 15)
Else
Text3.Text = "нет"
End If
Next x


Если вылетит ошибка на выделенной строке - я и KAN были правы!
403
11 августа 2006 года
ace lighting
411 / / 05.05.2006
в событии Form LOad я присваиваю пременной qw значение единицу.
403
11 августа 2006 года
ace lighting
411 / / 05.05.2006
Вообще-то код должен быть правильным, но он неправильно ищет по файлам. Если, например я пишу слово Visual, а оно находиться в файле 1.txt. Но прога решает что его вообще нигде нет! И ещё выводит ошибку invalid property array index...
403
11 августа 2006 года
ace lighting
411 / / 05.05.2006
и ещё правильней наверно будет заменит строчку
For x = 0 To File1.ListCount
на
For x = 1 To File1.ListCount
282
11 августа 2006 года
Bard
481 / / 26.02.2006
А у тебя етот код в событии Form_LOad находиться?
403
11 августа 2006 года
ace lighting
411 / / 05.05.2006
всмысле код цикла? нет в событиии буттон_клик.
282
11 августа 2006 года
Bard
481 / / 26.02.2006
Мой тебе совет: перед началом цыкла напишы следующее: MsgBox qw.
И еще, ты знаеш что такое глобальные переменные часного типа ?
282
12 августа 2006 года
Bard
481 / / 26.02.2006
^ ^ ^
| | |

Ето спам!!! При чем на нашем форуме !!! Надо бить тревогу и забанить етого пользователя, ведь он использует форум не поназначению и делает противный ОФТОП!!!!!! Короче, спамерам здесь не место!!!!

Проследите все его сообщения, кроме спама - ничего!!!

:mad: :mad: :mad:
403
12 августа 2006 года
ace lighting
411 / / 05.05.2006
Если SanCHos ещё раз оставит такое сообщение, то он больше в этот форум никогда не войдёт, да и в другие тоже!!!! Уж об этом я позабочусь:(
403
12 августа 2006 года
ace lighting
411 / / 05.05.2006
Вернёмся к теме... Поставил мессагу. Она выдаёт всегда 1! и дальше происходит ошибка(см. выше)
282
12 августа 2006 года
Bard
481 / / 26.02.2006
[QUOTE=ace lighting]Если SanCHos ещё раз оставит такое сообщение, то он больше в этот форум никогда не войдёт, да и в другие тоже!!!!Уж об этом я позабочусь:([/QUOTE]

Ну и как ты себе ето представляеш?

Вернемся к нашим баранам :)

Слушай, будь добр скинь не рабочую часть кода, ато так сложно понять что у тебя там.
1.8K
12 августа 2006 года
Валериус
190 / / 14.07.2006
Попробуй такой вот код. Жирным - изменения от твоего начального кода.

Код:
i = FreeFile

File1.Path = App.Path

Text3.Text = ""
On Error Resume Next
For x = 0 To File1.ListCount ' Здесь х=0, это точно
    File1.ListIndex = x
    Open App.Path & "\" & File1.FileName For Input As i
        Text2.Text = Input(LOF(x), x)
    Close x
    If InStr(Text2.Text, Text1.Text) <> 0 Then 'qw можно вобще опустить
        Text3.Text = Text3.Text & " " & Left(File1.FileName, 15)
    Else
        Text3.Text = "Нет"
    End If
Next x


А ещё попробуй убрать On Error, может он ошибку выдаёт, а тебе не показывает.
403
12 августа 2006 года
ace lighting
411 / / 05.05.2006
[QUOTE=Валериус]Попробуй такой вот код. Жирным - изменения от твоего начального кода.

Код:
i = FreeFile

File1.Path = App.Path

Text3.Text = ""
On Error Resume Next
For x = 0 To File1.ListCount ' Здесь х=0, это точно
    File1.ListIndex = x
    Open App.Path & "\" & File1.FileName For Input As i
        Text2.Text = Input(LOF(x), x)
    Close x
    If InStr(Text2.Text, Text1.Text) <> 0 Then 'qw можно вобще опустить
        Text3.Text = Text3.Text & " " & Left(File1.FileName, 15)
    Else
        Text3.Text = "Нет"
    End If
Next x


А ещё попробуй убрать On Error, может он ошибку выдаёт, а тебе не показывает.[/QUOTE]
Да спасибо ошибки больше нету, но только он не правильно выдаёт название файла. короче вот - сами смотрите. я тут в коде немножко всего убрал... введите ключевое имя для поиска - visaul и увидите что сначала он ничё не покажет, а потом ещё раз нажав на кнопку он покажет visual.txt
403
12 августа 2006 года
ace lighting
411 / / 05.05.2006
для Bard:
у меня связи есть. Неволнуйся... :):):)
282
12 августа 2006 года
Bard
481 / / 26.02.2006
[QUOTE=ace lighting]и увидите что сначала он ничё не покажет[/QUOTE]
On Error Resume Next убери - тогда все ясно станет!

Код:
Private Sub Command1_Click() 'При нажатии на кнопку:
i = FreeFile

File1.Path = App.Path

Text3.Text = ""
'On Error Resume Next
For x = 0 To File1.ListCount ' Здесь х=0, это точно
    If x <> File1.ListCount Then
    File1.ListIndex = x
    Open App.Path & "\" & File1.FileName For Input As 1
        Text2.Text = Input(LOF(1), 1)
    Close 1
    If InStr(Text2.Text, Text1.Text) <> 0 Then 'qw можно вобще опустить
        Text3.Text = Text3.Text & " " & File1.FileName
    End If
    End If
Next x
End Sub


Замени на ету функцыю, и будет пробивать с первого раза.
403
12 августа 2006 года
ace lighting
411 / / 05.05.2006
да! спасибо всё правильно! Работает! Скажите теперь как теперь сделать чтоб он не видел разницы между строчными и заглавными буквами?
282
12 августа 2006 года
Bard
481 / / 26.02.2006
:mad: Я же тебе сказал:

[QUOTE=Bard]Замени на ету функцыю, и будет пробивать с первого раза.[/QUOTE]

ПОЛНОСТЬЮ!!!

У меня ета функцыя работает!
403
12 августа 2006 года
ace lighting
411 / / 05.05.2006
сорри! я чё-то сначала не увидел разницу в коде :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог