Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 791
от 09.07.2007, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 487, Экспертов: 63
В номере:Вопросов: 2, Ответов: 4


Вопрос № 93846: есть такая каманда, декодирует дату в переменные: Date().DecodeDate (&year,&month,&day); а как декодировать дату из поля таблицы? (задача сравнить дату из таблицы с текущей?)...
Вопрос № 93858: Здравствуйте, уважаемые эксперты. Подскажите начинающему: как ч/з оператор cout выводить русские символы? В инете нашел разные варианты, но кроме функции CharToOem (которой не очень удобно пользоваться) ничего не нашел - есть самопальные ...

Вопрос № 93.846
есть такая каманда, декодирует дату в переменные:
Date().DecodeDate (&year,&month,&day);
а как декодировать дату из поля таблицы? (задача сравнить дату из таблицы с текущей?)
Отправлен: 04.07.2007, 03:13
Вопрос задал: Michail_bal (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Попов А.С.
Здравствуйте, Michail_bal!
Выгоднее использовать другую winAPI функцию - CurrentDateTime() и привести ее к типу AnsiString
код будет следующим:
TDateTime tm; // структура с соответствующими полями
AnsiString time;
time=FormatDateTime("dd mmm yy >> hh:mm", tm.CurrentDateTime()); // приведение // к типу AnsiString в соответствующем формате
if(time==tabl_line) ShowMessage("даты совпадают");
Ответ отправил: Попов А.С. (статус: 1-ый класс)
Ответ отправлен: 04.07.2007, 14:18


Вопрос № 93.858
Здравствуйте, уважаемые эксперты.
Подскажите начинающему:
как ч/з оператор cout выводить русские символы?
В инете нашел разные варианты, но кроме функции CharToOem (которой не очень удобно пользоваться) ничего не нашел - есть самопальные функции, а хотелось бы узнать возможно ли это сделать средствами С++/STL ( пытался использовать расширенную кодировку - wchar_t, wstring - какая-то каша - вместо букв идут какие-то цифры, компилятору все нравится). Использую среду MS VS 2003 .NET Professional. И еще, если пользователь вводит данные на русском языке в программу ч/з cin то cout выводит все как положено. Понимаю, что проблемы с кодировками - но победить не могу. При ответе приведите пожалуйста примеры кода :-)) Заранее благодарен за ответы.
Отправлен: 04.07.2007, 08:28
Вопрос задал: Komarov Sergey Borisovich (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ross
Здравствуйте, Loony!

Дело в том, что в окне консоли символы выводятся в кодировке DOS866. Для правильного отображения русского текста нужно сохранить исходник в этой кодировке (для этого можно использовать любой текстовый редактор, поддерживающий такую возможность, напр.
---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 04.07.2007, 09:05
Оценка за ответ: 4
Комментарий оценки:
Спасибо, использую, но мне интересно есть ли возможность средствами STL бороться с этим явлением

Отвечает: Dark Daskin
Здравствуйте, Loony!
Чтобы проще было использовать CharToOem, можно написать что-то вроде этого:
#include <iostream>
#include <windows.h>
using namespace std;

char* _(const char* str)
{
char* buffer = new char[strlen(str)];
CharToOemA(str, buffer);
return buffer;
}

int main (int argc, char* argv[])
{
cout << _("Можно писать по-русски") << endl;
return 0;
}

А вообще в инете наверное можно найти реализацию iostream с поддержкой кириллицы в windows-1251. (В нашем учебнике по С++, автор Павловская Т.А., был пример такой реализации, называлось CyrIOS).
---------
Драконы наступают!
Ответ отправил: Dark Daskin (статус: 1-ый класс)
Ответ отправлен: 04.07.2007, 10:00
Оценка за ответ: 4
Комментарий оценки:
Спасибо, подобную функцию я тоже сделал, но хотелось бы решить данную проблему (если это возможно) без использования windows.h средствами STL

Отвечает: kool
Здравствуйте, Loony!
Чтобы было удобней пользоваться CharToOem
можно создать макрос или ф-цию, в кот.
и реализовать перекодировку с помощью CharToOem.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 04.07.2007, 18:20
Оценка за ответ: 4
Комментарий оценки:
Спасибо, я пользуюсь подобным методом, но хотелось решить проблему без windows.h ч/з STL. А что такое "в кот."?


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.53 beta от 09.07.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное