Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Функция split / 12 сообщений из 12, страница 1 из 1
07.05.2007, 06:33
    #34508340
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Такой вопрос. у меня есть таблица, там много строк. они примерно такие:

1\2\3\4
1\2
1\2\3
1
1\2

т.е. максимум 4 фрагмента. разбиваю функцией split.

мне надо сделать так, что если все 4 сегмента (как в первом случае), то их выводить, а если недостает сегментов, то недостающие заполнять null. как это правильно сделать?
...
Рейтинг: 0 / 0
07.05.2007, 08:04
    #34508398
shady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
if UBound
...
Рейтинг: 0 / 0
07.05.2007, 10:14
    #34508663
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
НастенькаТакой вопрос. у меня есть таблица, там много строк. они примерно такие:

1\2\3\4
1\2
1\2\3
1
1\2

т.е. максимум 4 фрагмента. разбиваю функцией split.

мне надо сделать так, что если все 4 сегмента (как в первом случае), то их выводить, а если недостает сегментов, то недостающие заполнять null. как это правильно сделать?

arr=split(x & "\\\\\")
...
Рейтинг: 0 / 0
07.05.2007, 11:19
    #34508908
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
'Per - You string 1\2\3\4
Varfull = Split(Per, "\") 
Rec = UBound(Varfull)
For cnt =  0  To Rec
Ret1 = Varfull(cnt)
If Rec =  4  then
....
'что-то
End If

If Rec <> 4  then
....
'что-то
End If

 Next cnt
...
Рейтинг: 0 / 0
07.05.2007, 15:22
    #34509918
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Не надо UBound, не надо циклов:

Private Sub Command1_Click()

Dim strArr() As String

strArr = GetMySplittedArray("1", "\", 3)

End Sub

Private Function GetMySplittedArray(ByVal pstrText As String, ByVal pstrDelim As String, ByVal pintDim As Integer) As String()

Dim strReturn() As String

strReturn = Split(pstrText, pintDim)
ReDim Preserve strReturn(pintDim)

GetMySplittedArray = strReturn

End Function

Успехов
...
Рейтинг: 0 / 0
08.05.2007, 05:35
    #34511287
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
MX -- ALEX респект и большое спасибо. всё оказалось просто и со вкусом.
...
Рейтинг: 0 / 0
08.05.2007, 14:55
    #34512930
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Что-то я не понял сути наверно. Вот этот пример использования понравившегося спрашивающей подхода:

arr = Split("1\2\3\4" & "\\\\\")

Создает массив с одним единственным элементом вместо запрашиваемых четырех....
...
Рейтинг: 0 / 0
08.05.2007, 15:48
    #34513156
CepbIu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
VladConnЧто-то я не понял сути наверно. Вот этот пример использования понравившегося спрашивающей подхода:

arr = Split("1\2\3\4" & "\\\\\")

Создает массив с одним единственным элементом вместо запрашиваемых четырех....

там наверно имеллось ввиду arr = Split(x & "\\\\\", "\")
...
Рейтинг: 0 / 0
08.05.2007, 16:03
    #34513228
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
CepbIu VladConnЧто-то я не понял сути наверно. Вот этот пример использования понравившегося спрашивающей подхода:

arr = Split("1\2\3\4" & "\\\\\")

Создает массив с одним единственным элементом вместо запрашиваемых четырех....

там наверно имеллось ввиду arr = Split(x & "\\\\\", "\")

Ну, мы не знаем, что там имелось ввиду. Тем более, что, к сожалению, arr = Split(x & "\\\\\", "\") может приводить к созданию массива с числом элементов, превышающим четыре, что смотрится противоречащим условию.

Успехов.
...
Рейтинг: 0 / 0
08.05.2007, 16:15
    #34513271
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Кстати, в примере от MX -- ALEX, делимитер, по умолчанию пробел. То есть, его пример, вообще, вне плоскости темы. Просто загадка, что там могло так понравиться.
...
Рейтинг: 0 / 0
10.05.2007, 08:18
    #34515152
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Да, написала вот так:

arr = Split(text1.text & "\\\\\", "\") и всё работает.
т.е. если значение 1/2, то он выдает

arr(0)=1
arr(1)=2
arr(2)=""
arr(3)=""

то что и нужно было.
...
Рейтинг: 0 / 0
10.05.2007, 15:32
    #34516639
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция split
Там только одна заморочка в выбранном вами способе: возвращаемый массив будет получать переменное число элементов, не фиксированное, что, вообще говоря, может быть неудобно и вводить в заблуждение.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Функция split / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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