Очередной глюк VB6?

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

Очередной глюк VB6?

Сообщение Pantalone » 07.02.2008 (Чт) 18:23

Зайти в языковые настройки винды, поставить языковой стандарт английский(сша), нажать справа от него кнопку настройки, поставить для разделителя групп разрядов точку, применить и посмотреть что выдаст строка:

MsgBox Format(1234567, "#,#")

А выдаст она 1 вместо 1.234.567 :(

Что за дела? Может кто в курсе?
Что посоветуете? Другие проги при таком раскладе все показывают нормально.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 07.02.2008 (Чт) 21:28

"Глюки VB" - на самом деле, это глюки программиста. Ты сменил региональные настройки на США, и все равно используешь запятую, хотя обязан в качестве разделителя теперь использовать точку

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 08.02.2008 (Пт) 0:38

Прежде всего это глюки пользователя, а разгребать все программисту :)

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

Сообщение alibek » 08.02.2008 (Пт) 8:47

Pantalone, ты забыл, что на этом форуме тебе запретили говорить о глюках VB без подтверждения своих слов?
Lasciate ogni speranza, voi ch'entrate.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 08.02.2008 (Пт) 11:24

Подтверждение в первом посте. Debug.Print однако при этом работает как ни в чем не бывало. Программы не на VB кстати тоже.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.02.2008 (Пт) 12:35

Нечего на зеркало пенять коли рожа крива.
Народная мудрость.
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение alibek » 08.02.2008 (Пт) 14:01

Ты хочешь сказать, что MsgBox Format(1234567, "#,#") и Debug.Print Format(1234567, "#,#") выдает разные результаты? Не надо сказки рассказывать.
Lasciate ogni speranza, voi ch'entrate.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 08.02.2008 (Пт) 14:12

alibek
А ты попробуй.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Очередной глюк VB6?

Сообщение Andrey Fedorov » 08.02.2008 (Пт) 16:28

Pantalone писал(а):MsgBox Format(1234567, "#,#")
А выдаст она 1 вместо 1.234.567 :(


А попробовать MsgBox Format(1234567, "#,###") ???
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.02.2008 (Пт) 16:34

А ты попробуй.


Я попробовал - результат одинаковый.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 08.02.2008 (Пт) 16:35

jangle писал(а):"Глюки VB" - на самом деле, это глюки программиста. Ты сменил региональные настройки на США, и все равно используешь запятую, хотя обязан в качестве разделителя теперь использовать точку


Не - ты не понял - он поставил региональные настройки США и вдобавок выставил разделитем групп разрядов точку. То есть у него точка является и десятичным разделителем и она же разделителем групп разрядов.

Это вид мазохизма такой, видимо.
-----------
А строка функции формат от языковых настроек не зависит...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 08.02.2008 (Пт) 16:51

BV писал(а):
А ты попробуй.


Я попробовал - результат одинаковый.

Региональные настройки не забыл поменять как указано?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.02.2008 (Пт) 17:23

Разумеется, не забыл.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 08.02.2008 (Пт) 20:27

Странно... У меня всё оаботает, как должно.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 08.02.2008 (Пт) 21:37

Действительно странно, у меня на нескольких компах не работает.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 08.02.2008 (Пт) 23:13

Pantalone писал(а):Действительно странно, у меня на нескольких компах не работает.


А можешь объяснить - зачем тебе нужно чтобы как десятичным разделителем, так и разделителем групп разрядов была точка?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 09.02.2008 (Сб) 1:53

Да в общем-то особенно и не нужно, просто хотел понять VB. Всем спасибо.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

    TopList