Функция «Формат» в Visual Basic превращает шестнадцатеричные значения, заканчивающиеся на A, во время - PullRequest
0 голосов
/ 18 октября 2018

Я унаследовал некоторый код и очень плохо знаком с VB.

В коде в основном используются десятичные значения, они преобразуются в шестнадцатеричный эквивалент, и (я думаю) функция Формат используется для того, чтобы убедиться, что в другом используются только 2 символа (т. Е. Байт).строка.

Проблема в том, что когда функция Format встречает шестнадцатеричное значение, оканчивающееся на 'A', кажется, что она преобразует строку в некоторый формат времени.

Пример:

«4А» преобразуется в 04: 00: 00

«7А» преобразуется в 07: 00: 00

Вот соответствующий кодфрагмент:

    Format("4A")

В реальном коде я получил бы «00», так как функция имеет следующие необязательные дополнения:

    Format("0A","00")

Я предполагаю «А»это какой-то особенный характер.

У кого-нибудь есть идеи по поводу этой причуды?Заранее спасибо!

1 Ответ

0 голосов
/ 18 октября 2018

A интерпретируется как AM, так же как P будет PM, а вывод 16:00.

Format(), скорее всего, не является правильным для использования здесь, это будеттолько пэд, как вы хотите, если вход был числом.

Лучше пэд после преобразования базы:

hexa = Hex$(i)
If (i < 16) Then hexa = "0" & hexa
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...