Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: C# отображение символов  (Прочитано 9092 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
itakethisname
Интересующийся

eu
Offline Offline

« : 16-02-2010 23:09 » 

Привет,
пишу на C# апликацию, которая в драйвер отдаёт указатель, по этому указателю записываются данные, затем аппликация, по идее, должна парсить полученные данные, но вот беда, полученные данные мне надо интерпрЕтировать не как символы ASCII a, b, c, d, e, f..., а как числовые значения. Подскажите, пожалуйста, как получить настоящие нормальные значения, именно числовые?
Код:
uint q = 1024;
IntPtr pDest = IntPtr.Zero;
pDest = Marshal.AllocHGlobal((int)q);
result = DeviceIoControl(
                                    hFile,                   //handle to device
                                    IOCTL_READ,
                                    IntPtr.Zero, 0,  // >> input                  
                                    pDest,         q,  // >> output
                                    ref size,                //returned bytes
                                    IntPtr.Zero);
if (result)
            {
                OutputForm.AddtxtMethod(("IOCTL Sent! " + size).ToString()); // добавляет строчку в текстбокс
            }
            OutputForm.AddtxtMethod(" WE RECEIVED   >> " + ((Marshal.PtrToStringAnsi(pDest)).ToLower())); //добавляет строчку в текст бокс
            Marshal.FreeHGlobal(pDest);
вместо чего-либо ожидаемого, вижу лишь квадраты...
подскажите пожалуйста.
« Последнее редактирование: 17-02-2010 06:51 от Sel » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 17-02-2010 04:04 » 

Offtopic:

апликацию собирают на бумаге , а пишут приложение Отлично
Поставлю в угол.


а вопрос непонятен...
Записан

Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 17-02-2010 07:13 » 

Если строка содержит числа, записанные в 16-ричной кодировке, и нужно сконвертировать, то отдельно взятое число конвертируется примерно так:
Код:
string hex = "ab0c";
long number = long.Parse(hex, System.Globalization.NumberStyles.HexNumber);
string s = number.ToString();
А чтобы разделять числа, если нужно, - есть метод String.Split()
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 17-02-2010 12:46 » 

Цитата: itakethisname
Marshal.PtrToStringAnsi(pDest)
Почему ANSI? В .NET строчки Unicode.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines