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, где каждое значение, которое вы проверяете, всего на одно больше предыдущего значения, это должно просто кричать вам массив. Значения, которые вы проверяете, просто становятся индексными значениями в массиве.