Chr(10)/chr(13) какие-то непонятки - VB
Формулировка задачи:
В общем есть параметр в реестре:
ab (REG_SZ)
Коварность в том что в нем может содержаться несколько значений через разделитель:
aaa<>bbb<>ccc...
В реестре WinXP разделитель отображается как квадратик (прямоугольничек), в Vista/Win7 вообще никак не отображается.
Надо этот параметр "прочесть" и разбить на значения aaa,bbb,ccc и т.д.
================
Способ1:
(1) С++ прога (не знаю как вытаскивает из реестра) сохраняет значение в файле:
(4) ну и по символу <> расщепляю на aaa bbb и сcc
==========
Данный способ по ряду причин не удобен и абсолютно непрофессионален, а самое плохое что C++ модуль включает тормоза (в силу его архитектурных особенностей, кот. объяснять долго и лишне) и на запуск формы с параметрами уходит много времени (несколько секунд на современном компе).
Плюс мне известно где в реестре хранятся параметры,
и я умею работать с ним напрямую (м.б. несколько миллисекунд на считывание реестра).
Посему счас перехожу на "способ 2"
===========================
Способ2:
(1) Читаю параметр blablabla напрямую из реестра:
(2) имею aaa<>bbb<>ccc
(3) ну и по символу <> расщепляю на aaa bbb и сcc
====
И еще сразу:
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>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д