powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить только значимые значения массива?
14 сообщений из 14, страница 1 из 1
Как получить только значимые значения массива?
    #35247679
u4eni4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача сформировать строку из массива, но только из значимых значений.
задан массив
Dim Array(50) as String

Array(0)="1"
Array(1)="2"
Array(2)="2"
Array(3)=""
Array(4)=""
Array(5)="" и т.д.

Нужно сформировать строку вида ('1','2','2')

Надеюсь и уповаю..
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247735
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что конкретно у вас не получается?
join() используйте сбора строки и replace() для исключения пустых
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247736
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Replace(Join(ar, ","), ",,", "")
Array это зарезервированное слово.
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247766
u4eni4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не то что бы не получается - я не знаю как это сделать.. (
предполагал что то типа
Do While ArrayOfPr(i) = ""
StrToUse = "'" & Str(ArrayOfPr(i)) & "'"
i = i + 1
Loop

Но не работает...
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247779
u4eni4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как пашет, всем спасибо за участие
Do While ArrayOfPrefixes(i) <> ""
strToUse = strToUse & "'" & Str(ArrayOfPrefixes(i)) & "',"
i = i + 1
Loop

Ну не знаю я басика.. второй день на него глаза пучу...
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247780
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4eni4ok
предполагал что то типа

Я же вам написал правильное решение.
Ваше предположение — от незнания функционала VB.
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247786
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4eni4okStrToUse = "'" & Str(ArrayOfPr(i)) & "'"
Попробуйте
Код: plaintext
StrToUse = StrToUse ", " & Str(ArrayOfPr(i))

Ваш цикл подходит только для случая когда все значимые значения располагаются в начале. Если в середине может присутвовать пустое значение, то все последующие будут проигнорированы.
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247792
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
u4eni4okВот как пашет, всем спасибо за участие
Do While ArrayOfPrefixes(i) <> ""
strToUse = strToUse & "'" & Str(ArrayOfPrefixes(i)) & "',"
i = i + 1
Loop

Ну не знаю я басика.. второй день на него глаза пучу...
воспользуйся советом big-duke

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim Arr( 50 ) As String
Dim str As String
Arr( 0 ) = "1"
Arr( 1 ) = "2"
Arr( 2 ) = "2"
Arr( 3 ) = ""
Arr( 4 ) = ""
Arr( 5 ) = ""
str = Replace(Join(Arr, ","), ",,", "")
Debug.Print str
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247827
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя при таком раскладе
Код: plaintext
1.
2.
3.
4.
5.
Arr( 0 ) = "1"
Arr( 1 ) = "2"
Arr( 2 ) = "2"
Arr( 3 ) = ""
Arr( 4 ) = "3"
Arr( 5 ) = ""
получаем это
1,2,23
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247873
u4eni4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В массиве не пропусков.Он заполняется с первого(0) значения..
Вот окончательный вариант

Do While ArrayOfPrefixes(i) <> ""
If i = 0 Then
strToUse = "'" & Str(ArrayOfPrefixes(i)) & "'"
i = i + 1
Else
strToUse = strToUse & ",'" & Str(ArrayOfPrefixes(i)) & "'"
i = i + 1
End If
Loop

Получаем строку '1','2','2,' - эта строка пойдет в качестве аргумента в sql запрос.
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247917
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о боже, какой бред :)

JOIN юзайте и ,вообще, возможно вам и массив то не нужен. как вы его заполняете? может сразу строчку склеивать проще.
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35247994
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim Arr( 50 ) As String
Dim i As Integer
Dim s As String
Arr( 0 ) = "1"
Arr( 1 ) = "2"
Arr( 2 ) = "2"
Arr( 3 ) = ""
Arr( 4 ) = "3"
Arr( 8 ) = "10"
Arr( 48 ) = "15"
For i =  0  To UBound(Arr)
    If Arr(i) = Empty Then
    Else
         s = s & IIf(s = Empty, "'", "") & Arr(i) & "','"
    End If
Next i
s = Left(s, Len(s) -  2 )
Debug.Print s
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35248028
u4eni4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneо боже, какой бред :)

JOIN юзайте и ,вообще, возможно вам и массив то не нужен. как вы его заполняете? может сразу строчку склеивать проще.

Конечно бред - не знаю я басика и ваще...

есть ячейка в екселе с такими значениями, например, (32)33,2,45...47,78,8
Нужно получить строку '3233','322','3245','3246','3247','3278','328'
Разбираю ячейку и каждый из ХХХХ, напаример, 3233' запихиваю в массив. Можно, конечно, при разборе ячейки сразу строку формировать..
...
Рейтинг: 0 / 0
Как получить только значимые значения массива?
    #35248062
u4eni4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKO
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim Arr( 50 ) As String
Dim i As Integer
Dim s As String
Arr( 0 ) = "1"
Arr( 1 ) = "2"
Arr( 2 ) = "2"
Arr( 3 ) = ""
Arr( 4 ) = "3"
Arr( 8 ) = "10"
Arr( 48 ) = "15"
For i =  0  To UBound(Arr)
    If Arr(i) = Empty Then
    Else
         s = s & IIf(s = Empty, "'", "") & Arr(i) & "','"
    End If
Next i
s = Left(s, Len(s) -  2 )
Debug.Print s


Это красиво! Буду знать как делать.. Спасибо!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить только значимые значения массива?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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