Работа со строками

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Работа со строками

Сообщение Sirik » 29.06.2004 (Вт) 9:08

У меня проблемма весьма бональная:
есть строка и из неё надо "вытащить" параметры. Формат строки такой:
1)Machine: Mic
2)Machine: Mic , Dupa
3)Machine: Mic , Dupa , Ser
...
(Это все варианты строки)

Мне надо вытащить из строк соответственно:
1)Mic
2)Mic и Dupa
3)Mic и Dupa и Ser

Целый день потратил, но не нашёл закономерности.
Помогите кто чем может.

Евген
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 01.07.2003 (Вт) 14:13
Откуда: СПб

Сообщение Евген » 29.06.2004 (Вт) 9:13

Split() тебе поможет...
или посимвольным перебором - Mid()
Ёж птица гордая, пока не пнешь - не полетит!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 29.06.2004 (Вт) 9:14

Поправочка:
я упростил задачу, теперь строки:
1)Mic
2)Mic , Dupa
3)Mic , Dupa , Ser
...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2004 (Вт) 9:16

Код: Выделить всё
function Parameters (s as string) as string()
  parameters=split(mid$(s,instr(1,s,":")+1),",")
end function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2004 (Вт) 9:18

Тогда и я упрощу...
Код: Выделить всё
function Parameters (s as string) as string()
  parameters=split(s,",")
end function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 29.06.2004 (Вт) 9:20

GSerg писал(а):Тогда и я упрощу...
Код: Выделить всё
function Parameters (s as string) as string()
  parameters=split(s,",")
end function

что у меня вызов твоей функции даёт ошибку!
может, при объявлении функции надо писать function Parameters (s as string) as string "без скобок"

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2004 (Вт) 9:22

Нет, со скобками.
А поскольку ты всё упростил, зачем тебе функция? Сразу пиши split.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 29.06.2004 (Вт) 9:25

Вот мой код
Код: Выделить всё
Private Sub Command1_Click()
    Dim st() As String
    st = Split("Mic , Dupa", ",")
    MsgBox st(1)
    MsgBox st(2)
   
End Sub

Почему только "вытащить" можно 'Dupa'?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2004 (Вт) 9:31

Потому что с нуля массив индексируется.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 29.06.2004 (Вт) 9:32

Всё,я разобрался: первый елемент массива 0!!!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 11

    TopList