Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CharToOem проблеммы

468
01 октября 2006 года
Jackal
48 / / 20.09.2000
Доброго времени суток!
Есть вот такая проблемма: необходимо переконвертировать код вида 0, 1, ...255 в символы ДОС, т.е. при просмотре хиевом исходный файл выглядит так см. рис 1, а при конвертировании моей программой он выглядит так см. рис 2. Может кто подскажет в чем проблемма?!
Используется фукция CharToOem().

Код:
#include <windows.h>
#include <stdio.h>

void main(void)
{
  int Chr[256], I, J, P;
  char b[2];

  b[1]=0;

  for(I=0;I < 256; I++)
  {
    b[0]=I;
    CharToOem(b,b);
    Chr=(unsigned char)b[0];
  }

  printf("hex:\n    ");

  for(I=0; I < 21;I++)
    printf("%02X,",Chr);
  printf("\\\n  ");

  for(J=0; J < 9;J++)
  {
    for(P=0; P < 25; P++, I++)
      printf("%02X,",Chr);
    printf("\\\n  ");
  }

  for(; I < 255; I++)
    printf("%02X,",Chr);
  printf("%02X\n",Chr);
}
309
01 октября 2006 года
el scorpio
1.1K / / 19.09.2006
Как-то я писал программу конвертации файлов - вот фрагмент функции конвертирования
Код:
AnsiString sStr, tStr; // Объявляем начальную и конечную строки
    for (int i = 0, Count = fSourse_File->Count; i < Count; i++)
    {
        sStr = fSourse_File->Strings; // Считываем строку из StringList
        tStr.SetLength(sStr.Length()); // Указываем длину конечной строки, равную длине исходной
        if (ToWindows) // Выбираем направление конвертирования
            OemToCharA(sStr.c_str(), tStr.c_str());
        else
            CharToOemA(sStr.c_str(), tStr.c_str());
        fSourse_File->Strings = tStr; // Записываем конечную строку в StringList
    }

Для конвертирования используются два строковых массива, указатели на которые получаем методом AnsiString::c_str() для исходной и конечной строк соответственно


Jackal, без обид, но в приведённом коде без поллитры не разберёшься. Что он вообще делает?
294
02 октября 2006 года
Plisteron
982 / / 29.08.2003
Скажи, что ты хотел, чтобы делала твоя програМа, тогда можно будет сказать, в чём проблеММа.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог