СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

С приборо приходит строка вида:

#1,S1,V2,D0… и т.д.(всего около 30 параметров) причем S,D и V — это параметр прибора, а 0,1 и 2 — это состояние этого параметра.

Как лучше(быстрее) производить парсинг?

Ответ

Я бы, наверное, сделал это так:
Классика жанра:

masParam() = Split(strDevice, ",")

В итоге у нас массив с элементами ПараметрЗначение.
Ну, можно попробовать сделать в цикле так:

strParam = Left$(masParam(i), 1)
strValue = Mid$(masParam(i), 2) 'не помню точно синтаксис Mid'а…;)
Select Case
     Case "S"
         Sub_SetSValue strValue
     Case "V"
         Sub_SetVValue strValue
     …
     
     Case Else
   MsgBox "Unknown Parameter Found: " & strParam & _
    "=" & strValue, vbInformation, "Error!"
   End Select

Это я сделал с излишней универсальностью — расположение (и наличие) всех параметров в строке может быть различым. Отлавливается так же наличие неизвестных параметров, значение параметра может состоять из *ндцати символов, а не фиксированного числа N.

Если строка строго фиксирована — и того проще… Делаем Long массив с количеством элементов развным числу имеющихся параметров и "вырезаем" нужные значения Mid'ами.

Savenger



Copyright © 2000-2004 Сообщество Чайников
Контактная информация