Разделитель целой и дробной части числа

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ol1965
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 21.02.2005 (Пн) 9:29

Разделитель целой и дробной части числа

Сообщение Ol1965 » 31.05.2007 (Чт) 7:47

Добрый день,
подскажите, как на время работы программы заменить разделитель "," на разделитель "." в "Региональных настройках", а по завершеннию работы программы вернуть все обратно. Заранее спасибо.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.05.2007 (Чт) 8:10

А зачем?
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 8:11

Не смущает, что сразу посе этой замены нарушится работа всех остальных приложений?

Почему всегда это идиотское стремление -- подогнуть систему под себя, я не понимаю? Куча простейших решений по обработке существующих национальных разделителей -- нет, я умный, я изменю его в системе, я же потом верну обратно.

Нет, гражданин начальник, мы только покататься взяли, мы бы вернули...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ol1965
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 21.02.2005 (Пн) 9:29

Сообщение Ol1965 » 31.05.2007 (Чт) 8:28

Признаюсь. Каюсь. Спасибо за спарведливую критику. Несколько поменяю вопрос: как программно определить, какой разделитель установлен на конкретном компьютере. А нужно вот зачем: с прибора через СОМ порт поступает набор символов, в том числе и разделитель как ".".

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 8:48

Если разделитель известен и равен точке, в чём состоит проблема?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 31.05.2007 (Чт) 9:48

Ol1965 писал(а): Несколько поменяю вопрос: как программно определить, какой разделитель установлен на конкретном компьютере.


mid(1/2,2,1) - Это топором, а правильнее через API
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.05.2007 (Чт) 10:13

Зачем топор? Вот:

Код: Выделить всё
Format$(0, ".")
Последний раз редактировалось Viper 31.05.2007 (Чт) 12:19, всего редактировалось 1 раз.
Весь мир матрица, а мы в нем потоки байтов!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 10:39

Злые вы.
Я всё пытался вывести на то, что человеку вообще не нужен этот разделитель, просто он пока этого не понимает, а вы ему "да вот как".
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 31.05.2007 (Чт) 15:26

Не нужен? В системе разделитель "," какое значение выведется в msgbox?

Dim L As Single, s As String
s = "0.5"
L = Val(s)
s = L
L = Val(s)
msgbox L

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 15:31

djalex777, ты точно уверен, что понимаешь, что и для чего написал?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 31.05.2007 (Чт) 15:41

Привел пример случая, когда нужно знать, какой разделитель установлен пользователем...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 15:48

Я о том и спрашиваю.
Для чего здесь нужно об этом знать?
Из приведённого кода это совершенно непонятно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ol1965
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 21.02.2005 (Пн) 9:29

Сообщение Ol1965 » 31.05.2007 (Чт) 16:07

Нужно было вот для чего. Две открытые одновременно формы: на одной эмитация прибора, т.е. перетаскивание движка формирует число с разделителем десятичной части (как установлен в Панели управления), на другой отображение числа (обязательно с разделителем - точкой). Если в установлен разделитель - ",", то на второй форме меняется только целая часть числа. Путем хитросплетений нашел выход, если не прав - исправьте.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 16:11

Ol1965 писал(а):Нужно было вот для чего. Две открытые одновременно формы: на одной эмитация прибора, т.е. перетаскивание движка формирует число с разделителем десятичной части (как установлен в Панели управления), на другой отображение числа (обязательно с разделителем - точкой). Если в установлен разделитель - ",", то на второй форме меняется только целая часть числа. Путем хитросплетений нашел выход, если не прав - исправьте.

Разумеется не прав.
По доброй традиции ты не видишь разницы между числом и строковым представлением числа.
Ты должен был получать в одной форме число (num as double) и на одну форму выводить его через CStr, а на другую через Str.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 31.05.2007 (Чт) 18:56

в реестре на ветке
HKEY_CURRENT_USER\Control Panel\International
параметр
sDecimal

это я по теме поста =) даже если это уже не нужно
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 19:05

Wolfie, ты совсем не читал топик, правда?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 31.05.2007 (Чт) 19:37

GSerg почему же, все прочел, просто не берусь навязывать автору свою точку зрения и свой вариант, а говорю где можно найти Региональные настройки + если кто будет искать это по форуму. Но в данном случае, конесно CStr хватит по вилимому :)
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 19:43

Т.е. ты, во-первых, образно говоря, и выдернешь табуретку, раз человек этого просит, и во-вторых, для тех кто будет искать по форуму, даёшь неверный способ определения этих настроек?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 31.05.2007 (Чт) 20:02

Почему же неверный? почему бы оттуда не взять настройки?
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 20:04

Потому что это сейчас они хранятся там, а в следующей версии винды они будут хранится в другом месте. Поэтому надо пользоваться прямыми средствами получения этих настроек, а не теми, что в настоящий момент благодаря совпадению работают.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 31.05.2007 (Чт) 20:13

GSerg это верно, тогда можешь предложить универсальный вариант... но есть вероятность обратной совместимости, что и в Висте они там будут. Все равно, а вдруг у человека 98 или там Мак, тогда универсальности не будет так и так...
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2007 (Чт) 20:22

Wolfie писал(а):GSerg это верно, тогда можешь предложить универсальный вариант...

А он предложен в этом топике (ты не читал всё-таки).
И хотя он не "официальный", он работает и он универсальный.

Wolfie писал(а):а вдруг у человека 98 или там Мак, тогда универсальности не будет так и так...

В 98 всё точно так же, как написано выше в топике.
А вот причём здесь Мак, я вообще не понимаю. Просто сообщить, что ты знаешь, что есть Мак? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 31.05.2007 (Чт) 21:09

Друзья. Личную переписку - в личные сообщения.

Тему закрываю, так как правильный ответ уже был дан.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 53

    TopList