Вопрос
С приборо приходит строка вида:
#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 Сообщество Чайников
Контактная информация