Gaurav Patil Ответов: 1

Преобразование char[32] в string


я конвертирую символ в строку

\0\0\0\0\0\0\0\0??;\б\0\0\0\0?????qUw?g?\u0001\0\0\0\0 это не читаемые данные humman.

так что же будет делать для записи данных
я хочу, чтобы этого типа 2018-03-12 сведения 16.16.25 ?

Что я уже пробовал:

public struct PLAT_SUBSCRIBE_EVENT_V20
 {
       [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public char[]
       szAlarmTime;
  }


public void CB_SubscribeEvent(PLAT_SUBSCRIBE_EVENT_V20 pstEvent, IntPtr pUser)
{
           byte[] _szAlarmTime = Encoding.Default.GetBytes(pstEvent.szAlarmTime);
            string __szAlarmTime = Encoding.Default.GetString(ar);
}



but  __szAlarmTime = \0\0\0\0\0\0\0\0??;\b\0\0\0\0?????qUw?g?\u0001\0\0\0\0"

\0\0\0\0\0\0\0\0??;\б\0\0\0\0?????qUw?g?\u0001\0\0\0\0 это не читаемые данные humman.
так что же будет делать для записи данных
я хочу, чтобы этого типа 2018-03-12 сведения 16.16.25 ?

PIEBALDconsult

По-моему, все в порядке. Что заставляет вас думать, что это неправильно?

Richard MacCutchan

Ваш код не имеет смысла. У вас есть три версии строки: __szAlarmTime, _szAlarmTime и szAlarmTime Но вы не объясняете, откуда берутся эти строки или что они должны представлять. Пожалуйста, обновите свой вопрос более подробно.

1 Ответов

Рейтинг:
2

OriginalGriff

Скорее всего, преобразование работает идеально, но входные данные не такие, как вы ожидали, поэтому выходные данные не выглядят как "читаемая строка". Я бы начал с того, где вы получаете pst-событие.szAlarmTime from и посмотрите на определение в любой документации с этим. Скорее всего, это вовсе не читаемое человеком время будильника, а закодированное начало даты-времени, повторное значение и / или конечное значение, которое вам нужно будет обработать гораздо более подробно, чтобы получить читаемое человеком значение.