Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Вопрос у меня следующий. Могли ьы вы мне подсказать как лучше и правильнее преобразовать строку данных в массив. вот строка данных a="Дасаев (c) - Бессонов, Хидиятуллин, Балтача, Демьяненко - Гоцманов (Рац, 62), Алейников, Яковенко (Пасулько, 46; Беланов, 77), Литовченко - Протасов, Яремчук." Нужно получить массив Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Заранее благодарю, если кто сумеет помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 12:44 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Владислав Y, Вам придется СЛОВАМИ, предельно ЯСНО, предельно ФОРМАЛЬНО, не оставляя вариантов ДОДУМЫВАНИЯ описать принципы преобразования строки в массив. Ибо, почему Яковенко (Пасулько, 46; Беланов, 77) преобразуется именно в то, что вы написали, лично мне неведомо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 13:26 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
еще пример: Гоцманов (Рац, 62) - это две разные фамилии и в разны строках написаны. Дасаев (c) - это почему-то не две фамилии, а одна. Почему - известно только вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 13:28 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
>>>Вам придется СЛОВАМИ, предельно ЯСНО, предельно ФОРМАЛЬНО, не оставляя вариантов ДОДУМЫВАНИЯ описать принципы преобразования строки в массив. Я понимаю что здесь не так просто данные преобразовать в массив. Но ясно и формально описать словами все возможно. Сначала переменная должна разбиться на отдельные части, разделителями являются "-", и ",". Затем разделяются на части те фрагменты где есть скобки, за исключением "(с)". После этого разделяются на части фрагменты которые были в скобках, разделителем в данном случа является ";". >>>Гоцманов (Рац, 62) - это две разные фамилии и в разны строках написаны. >>>Дасаев (c) - это почему-то не две фамилии, а одна. Почему - известно только вам. Сочетание "(c)" указывает на то что человек является капитаном (captain) из за этого в данном случае это одна фамилия. А здесь "Гоцманов (Рац, 62)" две фамилии и время выхода второго человека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 13:49 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Владислав Y, Вы вместо принципов пишете алгоритм - ну хорошо, если вы в состоянии сами написать алгоритм, то в чем заключается ваш вопрос? Кстати, предложенный алгоритм не разберется со строкой Яковенко (Пасулько, 46; Беланов, 77), там нет ни запятой, ни минуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 13:53 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
В том то и проблема что алгоритм я пока написать не могу. Здесь "Яковенко (Пасулько, 46; Беланов, 77)" разделителем является знак ";". А на счет описания принципов. Мне кажется я и описываю принципы. Разделителями между фамилиями являются знаки "," "-", внутри скобок разделителями являются ";". Внутри скобок также присутствует время выхода человека на замену. Сочетание "с" указывает на то что человек является капитаном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 14:08 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Ну, напишите вы по-русски, что вообще означает ваша строка? Список игроков команды, сыгравших матч, и т.д.? Если вы на основе приведённой строки словами расскажете, что она означала в действительности, а также таблицу с какими данными вы получаете (порядок записей, что означают поля 1,2,3,4) - будет понятно, куда рыть... И вообще, может, вам эту инфу проще взять из другого источника, где она есть уже в более вразумительной форме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 14:32 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Допустим, можно сделать вот такую предобработку, а потом пройтись второй раз, заполняя массив по виду данных в ячейках Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 14:53 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Спасибо, идею вы мне подбросили. Вот еще вопрос. функции Replace Split в Visual Basic 6.0 отсутствуют а есть у кого этиже функции написанные для Visual Basic 6.0 в виде исходного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:10 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Владислав Yфункции Replace Split в Visual Basic 6.0 отсутствуют Как это. А на чем по-вашему написан вышеприведенный код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:12 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Функция Split Split(Expression,[Delimiter],[Limit],[Compare] ) Новая функция, которая появилась в Visual Basic 6.0 Функция Split используется для расщепления строки на субстроки с использованием разделителя субстрок Возвращаемое значение Функция Split(Expression) возвращает одномерный массив с типом данных Variant(String), содержащий в качестве элементов найденные субстроки Параметры Expression Обязательный аргумент - строка, которую нужно расщепить. Если аргумент содержит нулевую строку(""), то возвращается пустой массив, т.е. массив без элементов и данных Delimiter Необязательный аргумент - символы типа String, которые используются в качестве разделителя строки. Если аргумент опущен, то по умолчанию используется символ пробела(" "). Если же аргумент содержит нулевую строку(""), то возвращается одноэлементный массив, содержащее целую строку Limit Необязательный аргумент, содержащий число возвращаемых субстрок. Если аргумент опущен или равен -1, то обрабатывается вся строка Compare Необязательный аргумент - числовая константа, определяющая вид сравнения: vbUseCompareOption=-1 Используется по умолчанию метод сравнения, заданный инструкцией Option Compare vbBinaryCompare=0 Двоичный метод сравнения. Буквы разных регистров считаются разными vbTextCompare=1 Текстовый метод сравнения. Сравнение без учета регистров vbDatabaseCompare=2 Только для Microsoft Access. Сравнение с использованием информации базы данных Пример ' Считаем число вхождений слова "кол" в строке Dim stroka As String ' строчка для подсчета Dim retval ' возвращаемое значение stroka = "Шит колпак не по-колпаковски. Ливерная колбаса." retval = Split(stroka, "кол") MsgBox "'кол' встречается в строке'" & stroka _ & "' " & UBound(retval) & " раза" Функция Replace Replace(Expression,Find,Replace[,Start[,Count[,Compare]]]) Новая функция,которая появилась в Visual Basic 6.0 Возвращаемое значение В результате действия функции Replace возвращается исходная строка с замененным строковым фрагментом Параметры Expression Обязательный аргумент - строка, в которой требуется замена Find Обязательный аргумент - подстрока, которую нужно заменить Replace Обязательный аргумент - подстрока замены Start Необязательный аргумент - указывает позицию Count Необязательный аргумент - указывает число Compare Необязательный аргумент - вид сравнения Пример ' меняем слово "хочу" на "люблю" 1 раз Dim sample$, findstr$, newstr$,retval$ sample = "Я хочу, хочу, хочу тебя" 'строка,которую будем менять findstr = "хочу" 'подстрока для замены newstr = "люблю" ' новая подстрока для замены retval = Replace (sample,findstr, repl, 1, 1) ' меняем один раз, начиная с первого символа Debug.Print retval ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:16 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Владислав Yфункции Replace Split в Visual Basic 6.0 отсутствуют DUDALSФункция Split Новая функция, которая появилась в Visual Basic 6.0 Функция Replace Новая функция,которая появилась в Visual Basic 6.0 ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:19 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Шеф все пропало... У меня просто help, от Visual Basic 5.0 стоит. А там этих функций небыло. Спасибо, я до этого считал что они только в VBA есть... Просветили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:21 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Слушайте, а может в Visual Basic 6.0 есть функция преобразующая массив в строку... а я до сих пор не знаю. Мож кто подскажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:24 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, У меня в VB 6.0 данные функции есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:35 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
DUDALSShocker.Pro, У меня в VB 6.0 данные функции есть и у меня. Я просто не заметил, что это разные люди написали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:36 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Владислав YСлушайте, а может в Visual Basic 6.0 есть функция преобразующая массив в строку... а я до сих пор не знаю. Мож кто подскажет. Есть, Merge называется. В хелпе для Split на неё же ссылочка есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 17:02 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
AndreTMВладислав YСлушайте, а может в Visual Basic 6.0 есть функция преобразующая массив в строку... а я до сих пор не знаю. Мож кто подскажет. Есть, Merge называется. В хелпе для Split на неё же ссылочка есть... Так, опять не туда посмотрел - вот что значить писАть сразу на всём :) В-общем, это функция: Join (одномерный_массив, [разделитель]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 17:06 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
AndreTMВ-общем, это функция: Join (одномерный_массив, [разделитель]) а это на каком языке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:08 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, вба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:22 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Однако, ТС спрашивал конкретно про VB6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:24 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Вы ж говорили, что они братья ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:27 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюВы ж говорили, что они братья Ну вот, у одного из братьев бородавка на носу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:31 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Автор непостоянный то в массив нужно, то Слушайте, а может в Visual Basic 6.0 есть функция преобразующая массив в строку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:39 |
|
||
|
Получение массива
|
|||
|---|---|---|---|
|
#18+
Владислав Y, Вы говорите: вот строка данных a="Дасаев (c) - Бессонов, Хидиятуллин, Балтача, Демьяненко - Гоцманов (Рац, 62), Алейников, Яковенко (Пасулько, 46; Беланов, 77), Литовченко - Протасов, Яремчук." Нужно получить массив А дальше что с ним будете делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:43 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36764351&tid=2159542]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 362ms |

| 0 / 0 |
