| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Выбор |
| Автор: Михалыч 27.8.2013, 18:27 |
| В Checklistbox загружаю все диски установленные на ПК, в итоги нужно что бы пользователь выбрал нужные диски для скрытия. не могу сообразить как поумнее создать проверку какие диски выбраны и сложить цыфры. Использовать " if then else " очень накладно. А через " Case " что то не сооброжу, дайте совет как правильно расписать. Например, диск A имеет бит 1, диск С - 4, диск D - 8. Таким образом, чтобы скрыть диски A и D, нужно сложить их значения 1 (A) + 8 (D) и установить значение 9. Список всех дисков: A: 1, B: 2, C: 4, D: 8, E: 16, F: 32, G: 64, H: 128, I: 256, J: 512, K: 1024, L: 2048, M: 4096, N: 8192, O: 16384, P: 32768, Q: 65536, R: 131072, S: 262144, T: 524288, U: 1048576, V: 2097152, W: 4194304, X: 8388608, Y: 16777216, Z: 33554432, Все диски: 67108863 |
| Автор: Vas 27.8.2013, 18:41 |
| Через или видимо A = 0001 B = 0010 C = 0100 D = 1000 ну и так далее A OR C = 0101 Добавлено через 51 секунду Только разрядность поболее Z = 10000000000000000000000000 |
| Автор: Михалыч 27.8.2013, 18:57 |
Че то мне кажется что это тоже слишком мудрёно. Думаю должен быть вариант проще. |
| Автор: Михалыч 27.8.2013, 19:31 |
| Ну да не мудрено! |
| Автор: Чучмек 27.8.2013, 19:59 |
| А как еще? Код символа 'A' = $41, все остальные (B,C,D...) по порядку, с шагом в единицу ($42,$43,$44,...). Разница между кодом "буквы" выбранного диска и кодом "буквы" нулевого диска "A" является номером бита соответствующего диска (счет с нуля). А дальше - битовые операции и ничего больше. |
| Автор: northener 27.8.2013, 20:38 | ||
А чем банальное множество не устроило?
|
| Автор: MetalFan 29.8.2013, 14:20 | ||
|