Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: Вопрос от ламера на тему разделения... переменных Добавлено: 24.05.10 19:55  

Автор вопроса:  Uhehesh | Web-сайт: mda.net.ru
Hi, all.

У меня возникла следующая проблема. Делаю программу, которой нужно получать текстовую информацию (что-то вроде команд).
К примеру, пользователь отправляет следующее: "delete, %FileName%, %DeleteMode%". Программа должна разделить это на три отдельные переменные - command ("delete"), filename (%FileName%), deletemode (%DeleteMode%).

Как мне это реализовать?

P.S. Программа получает информацию по протоколу ICQ в виде сообщений.

Ответить

  Ответы Всего ответов: 34  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 24.05.10 20:54
  1. Private Sub Form_Load()
  2.     Dim strData   As String
  3.     Dim arrData() As String
  4.  
  5.     strData = "delete, %FileName%, %DeleteMode%"
  6.     
  7.     ' собственно, разделение на части по запятой
  8.     arrData = Split(strData, ",")
  9.  
  10.     For i = 0 To UBound(arrData)
  11.         Debug.Print Trim$(arrData(i))
  12.     Next
  13. End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #2
Добавлено: 24.05.10 21:09
Спасибо, гуд Одмин. Постил это сообщение на три форума, на этом ответили раньше всех.

Вывод инфы:
  1. MsgBox(strData)
  2.         MsgBox(arrData(1))

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 24.05.10 21:27
Но дело в том, что %FileName% и %DeleteMode% не должны содержать запятых. По хорошему, тут требуются дополнительные проверки.

Ответить

Номер ответа: 4
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #4 Добавлено: 24.05.10 21:32
Если на .NET, то всё ещщё проще.
  1.  
  2. Dim mass(0 to 3) as string
  3. Dim S as string = "delete, %FileName%, %DeleteMode%"
  4. mass = s.Split(",")


Всё. У тебя получится массив из 3-х элементов: delete %FileName% %DeleteMode%!

Ответить

Номер ответа: 5
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #5 Добавлено: 24.05.10 21:33
Блин(. В Верхнее сообщение не вчитался(

Ответить

Номер ответа: 6
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #6
Добавлено: 24.05.10 22:46
UnDeAdZak пишет:
Если на .NET, то всё ещщё проще.

Да ты что:
  1. Dim mass(0 to 2) As String
  2. mass = Split("delete, %FileName%, %DeleteMode%", ",")

Смекаешь, вася? :)

Ответить

Номер ответа: 7
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #7
Добавлено: 24.05.10 22:47
Вот что у меня примерно получилось: http://projects.mda.net.ru/mc/
Вот мануал к тому, что у меня есть: http://projects.mda.net.ru/mc/manual/

Это версия 1.00 (1.0000000000000000...) программы MeCommand, которая управляет компьютером по протоколу ICQ.

Ответить

Номер ответа: 8
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #8
Добавлено: 24.05.10 22:48
Команда help содержит благодарность Executioner.
А топик, похоже, превратился в соревнование "у кого короче код".

Ответить

Номер ответа: 9
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #9
Добавлено: 24.05.10 23:05
Да нет, просто я напомнил народу, что VB6 не так убог, как они хотят его показать.

Ответить

Номер ответа: 10
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #10
Добавлено: 24.05.10 23:16
VB6 устарел очень давно. :)

Ответить

Номер ответа: 11
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #11
Добавлено: 25.05.10 00:07
Тем не менее много народу всё ещё им пользуется или им пополам с чем нибудь. :)

Ответить

Номер ответа: 12
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #12
Добавлено: 25.05.10 00:08
устарел, но не убог.

Ответить

Номер ответа: 13
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #13
Добавлено: 25.05.10 00:53
VβÐUηìt, а если будет больше параметров у команды? Смекаешь?

Ответить

Номер ответа: 14
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #14 Добавлено: 25.05.10 01:32
VβÐUηìt пишет:
Да нет, просто я напомнил народу, что VB6 не так убог, как они хотят его показать.

vb6 настолько убог, что даже самый последний адепт VB6 давно его забросил и забыл как на нем писать.

Динамический массив создается как
  1. Dim mass() As String

Если ты сразу указываешь размерность
  1. Dim mass(0 To 2) As String

то это уже не динамический массив а статический. А статический массив имеет ряд ограничений, в частности, нельзя менять его размер, и нельзя присваивать ему другой массив, т.е. твой код скорее всего вообще не заработает. Смекаешь?

Если хочешь померяться длиной, то вот тебе расово вегный пример на VB .NET
  1. Dim Mass = "delete, %FileName%, %DeleteMode%".Split(",")

Ответить

Номер ответа: 15
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #15
Добавлено: 25.05.10 07:25
Artyom пишет:
vb6 настолько убог, что даже самый последний адепт VB6 давно его забросил и забыл как на нем писать.

Частное мнение
Artyom пишет:
Динамический массив создается как
Dim mass() As String

Если ты сразу указываешь размерность
Dim mass(0 To 2) As String

то это уже не динамический массив а статический. А статический массив имеет ряд ограничений, в частности, нельзя менять его размер, и нельзя присваивать ему другой массив, т.е. твой код скорее всего вообще не заработает. Смекаешь?

Ну простите, можете писать
  1. Dim mass As Variant

Artyom пишет:
Если хочешь померяться длиной, то вот тебе расово вегный пример на VB .NET
Dim Mass = "delete, %FileName%, %DeleteMode%".Split(",";)

Пожалуйста:
  1. m=Split("delete, %FileName%, %DeleteMode%",",")

Artyom пишет:
померяться длиной

Только здесь этот процесс как-то инвертировался.

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам