Chr(10)/chr(13) какие-то непонятки - VB

Узнай цену своей работы

Формулировка задачи:

В общем есть параметр в реестре:
ab (REG_SZ)
Коварность в том что в нем может содержаться несколько значений через разделитель:
aaa<>bbb<>ccc...
В реестре WinXP разделитель отображается как квадратик (прямоугольничек), в Vista/Win7 вообще никак не отображается.
Надо этот параметр "прочесть" и разбить на значения aaa,bbb,ccc и т.д.
================
Способ1:
(1) С++ прога (не знаю как вытаскивает из реестра) сохраняет значение в файле:
(2) потом я читаю файл через VB
(3) нахожу там строчку ,"

blablabla=

aaa<>bbb<>ccc"
(4) ну и по символу <> расщепляю на aaa bbb и сcc

Так вот, этим символом <> оказывается chr(13)


==========
Данный способ по ряду причин не удобен и абсолютно непрофессионален, а самое плохое что C++ модуль включает тормоза (в силу его архитектурных особенностей, кот. объяснять долго и лишне) и на запуск формы с параметрами уходит много времени (несколько секунд на современном компе).
Плюс мне известно где в реестре хранятся параметры,
и я умею работать с ним напрямую (м.б. несколько миллисекунд на считывание реестра).
Посему счас перехожу на "способ 2"
===========================
Способ2:
(1) Читаю параметр blablabla напрямую из реестра:

(2) имею aaa<>bbb<>ccc
(3) ну и по символу <> расщепляю на aaa bbb и сcc

Так вот, этим символом <> оказывается chr(10)


Т.е. один и тот же <> интерпретируется как chr(10) вместо chr(13).
Мне не сложно заменить в последующем коде работы с параметрами chr(13) -> на chr(10)
но меня это несколько смущает: вдруг где-то что-то не так сработает.
Хочу получить комментарий/объяснение/успокоение почему так.


====
И еще сразу:
Длина "blablabla" может быть много больше 255. Я смогу своей GetRegValue прочитать корректно длинный параметр?

Решение задачи: «Chr(10)/chr(13) какие-то непонятки»

textual
Листинг программы
<font color="blue">Declare</font> <font color="blue">Function</font> RegQueryValueEx Lib <font color="teal">"advapi32"</font> Alias <font color="teal">"RegQueryValueExA"</font> ( _
        <font color="blue">ByVal</font> hKey <font color="blue">As</font> <font color="blue">Long</font>, _
        <font color="blue">ByVal</font> lpValueName <font color="blue">As</font> <font color="blue">String</font>, _
        <font color="blue">ByVal</font> lpReserved <font color="blue">As</font> <font color="blue">Integer</font>, _
        Optional lpType <font color="blue">As</font> <font color="blue">Long</font>, _
        Optional <font color="blue">ByVal</font> lpData <font color="blue">As</font> <font color="blue">String</font>, _
        Optional lpcbData <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы