powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Найти .FirstIndex с помощью функции RegExp?!
8 сообщений из 8, страница 1 из 1
Найти .FirstIndex с помощью функции RegExp?!
    #36103844
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция, мне необходимо найти FirstIndex всех "Е" в строке:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Function PosFind2(filepath) As String
Dim f611 As Long
Dim data As String

Dim myRegExp As New RegExp
With myRegExp
.MultiLine = False
.Global = True
.IgnoreCase = False
.Pattern = "Е"
End With

Dim colMatches As MatchCollection

f611 = FreeFile
Open filepath For Input As #f611
r =  0 

Do Until EOF( 1 )
Line Input #f611, data

If myRegExp.Test(data) Then
Set colMatches = myRegExp.Execute(data)

PosFind2 = colMatches( 0 ).FirstIndex

Exit Do

End If

Loop

Close #f611

End Function


Проблема в том, что я могу найти только одну позицию конкретной "Е".
Как написать, чтобы моя функция PosFind2 выдавала сразу все найденные FirstIndex всех "Е"??

Если записать PosFind2(filepath, x), PosFind2 = colMatches(x).FirstIndex, то функция каждый раз будет искать строку заново и только потом позицию следующей "Е", что не подходит.

Помогите, кто как видит решение?!!!
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36103931
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DasTin,

А не проще ли закинуть в цилк что-то типа:
Код: plaintext
pos = InStr( pos +  1 , LCase( str ), "е" )
Или позицию задавать регэксп объекту.
Т.е. с каждой итерацией начинать поиск с последней найденной позиции в строке.
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36104100
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DasTinПомогите, кто как видит решение?!!!Аксиома: функция может возвращать только одно значение.
Как ты планируешь получить несколько значений из функции?
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36104162
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Function PosFind2(filepath, x)
…
.Pattern = "(E)"
…
PosFind2 = colMatches( 0 ).SubMatches(x)


Jah loves you.
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36107566
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BION
Или позицию задавать регэксп объекту.
Т.е. с каждой итерацией начинать поиск с последней найденной позиции в строке.

Как задать позицию, если можно, в кратце.
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36107721
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Ну а как на счёт массива данных?

Функция хранит все полученные значения, а выводить, например как PosFind2(0), PosFind2(1), PosFind2(2)
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36108589
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DasTinНу а как на счёт массива данных?Молодец, начинаешь думать. Функция должна возвращать либо массив, либо коллекцию.
А теперь подумай еще над одним вопросом: если у тебя в файле с исходными данными несколько строк будут содержать букву "E"? Что ты тогда собираешься делать?
...
Рейтинг: 0 / 0
Найти .FirstIndex с помощью функции RegExp?!
    #36147682
DasTin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl..если у тебя в файле с исходными данными несколько строк будут содержать букву "E"? Что ты тогда собираешься делать?

Ну это уже другой вопрос, буду, например, брать только стоку, в которой первый раз выпадет буква "E".

В моём случае, лишь одна строка содержит букву "E".
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Найти .FirstIndex с помощью функции RegExp?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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