Member 13142345 Ответов: 1

Как добавить номер 1 для 32-битного символа строки в зависимости от выбора на VB .Чистая


Я использую VB .net и интегрирую стороннюю dll в свой код, который связан с keycard в гостиничном программном обеспечении.

Таким образом, ключ-карта генерируется для конкретного этажа, на котором регистрируется гость. для этого в своей документации они попросили отформатировать его как 32-битную символьную строку.

Пример: если гость находится на 17 этаже, то

Dim FloorSelection as string = "00000000000000010000000001000000"


Слева 1 должен быть добавлен вместо 7 для каждого этажа и 1 должен быть добавлен на этаж Регистрация гостя

Что я уже пробовал:

Итак, как я могу добиться этого, основываясь на их критериях, чтобы добавить 1 к конкретному месту, основанному на этаже регистрации гостей

1 Ответов

Рейтинг:
1

OriginalGriff

Это нелегко сказать только из одного примера - вам действительно нужно вернуться к документации и дважды проверить, как именно строка, которую она должна была связать с этажом и номером комнаты, так как кажется маловероятным, что это то, что она появляется из этого.
Наилучшее предположение:

00000000000000010000000001000000
Состоит из двух частей:
0000000000000001  -  floor number (1)
0000000001000000  -  room on floor (7)
Но это ограничивает систему только работой с 16 номерами на этаже, а я останавливался в отелях с гораздо, гораздо большим количеством!

Но самый простой способ сделать это преобразование-настроить массив:
Private toBinaryString As String() = {"0000000000000001", "0000000000000010", "0000000000000100", "0000000000001000", "0000000000010000", "0000000000100000", "0000000001000000", "0000000010000000", "0000000100000000", "0000001000000000", "0000010000000000", "0000100000000000", "0001000000000000", "0010000000000000", "0100000000000000", "1000000000000000"}
а затем используйте номер этажа и номер комнаты в качестве индексов, чтобы получить каждую "половину" нужной вам строки.

Но я настоятельно советую вам внимательно прочитать документацию, прежде чем брать на себя такие обязательства!


Member 13142345

Согласно структуре отеля, их базовый уровень начинается с 7, а затем поднимается до 20 этажей. поэтому после общения со службой поддержки ключ-карты они сказали разместить 1 вместо 7 в 32-битной строке charcter и разместить 1 вместо этажа гостевой регистрации

так я и написал

Если этаж = 8, то
FlrSelection1 = "00000000000000000000000011000000"
ElseIf floor = 9 тогда
FlrSelection1 = "00000000000000000000000101000000"
ElseIf floor = 10 тогда
FlrSelection1 = "00000000000000000000001001000000"
ElseIf floor = 11 тогда
FlrSelection1 = "00000000000000000000010001000000"
ElseIf floor = 12 тогда
FlrSelection1 = "00000000000000000000100001000000"
ElseIf floor = 13 тогда
FlrSelection1 = "00000000000000000001000001000000"
ElseIf floor = 14 тогда
FlrSelection1 = "00000000000000000010000001000000"
ElseIf floor = 15 тогда
FlrSelection1 = "000000000000000001000000000000"
ElseIf floor = 16 тогда
FlrSelection1 = "00000000000000001000000001000000"
ElseIf floor = 17 тогда
FlrSelection1 = "00000000000000010000000001000000"

но она не является общей. поэтому я хочу написать аккуратный код для добавления 1 на основе номера этажа

Dave Kreskowiak

Если вы делаете что-то вроде этого стека IF, где каждое значение, которое вы проверяете, всего на одно больше предыдущего значения, это должно просто кричать вам массив. Значения, которые вы проверяете, просто становятся индексными значениями в массиве.