0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
|
|
1 | |
Как перевести строку в читабельный вид?11.02.2012, 12:58. Показов 6271. Ответов 56
Метки нет (Все метки)
Собственно из названия темы. Есть строка символов (к примеру такая: 0430002004370430043904340438)
Как перевести ее в читабельный вид, т.е в текст. Уже всю голову сломал Подскажите что прочитать(ссылочку если можно)
0
|
11.02.2012, 12:58 | |
Ответы с готовыми решениями:
56
Прилетают данные UTF-8, как правильно преобразовать в читабельный вид? Как написать читабельный код Как перевести строку в число? Как перевести строку в BSTR* |
11.02.2012, 23:09 | 22 |
Я, как программист, понимаю, что ты от него хотел. А он, как не программист - не понял. А нужно-то было один раз потратить пару лишних минут на внятное объяснение
На какую мысль? Я как бы в вопросах кодировок практически ничего не понимаю, особенно по части юникода. Просто вбил в гугл "перевод из юникода в win1251" или что-то типа того, взял готовый код и воткнул в программу, не особенно понимая, что там делается Добавлено через 1 минуту Кстати, ТС по ходу не выдержал и пропал. А был-то всего в одном шаге от решения своей проблемы
1
|
|
11.02.2012, 23:17
#23
|
0
|
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
|
|
12.02.2012, 00:30 [ТС] | 24 |
0
|
|
12.02.2012, 00:33
#25
|
Не по теме: dimmu, дык ещё ж не помогли тебе, ты смог уловить мысль за таблицу соответсвия???:scratch:
0
|
dimmu
|
12.02.2012, 00:42
[ТС]
#26
|
Не по теме: Еще как помогли. остальное завтра додумаю.поздно уже :)
0
|
Заблокирован
|
|
12.02.2012, 00:50 | 28 |
Evg, ну ты же видел я её применил(пост 19) и вышла билеберда, возможно коды в той смс-ке идут с каки-то смещением. Вот к примеру u0432 означает что код символа должен быть 432 - нет такого
ИМХО легче вбить таблицу перевода чем юзать функцию, ну как по мне проще, вот
0
|
12.02.2012, 10:36 | 29 | |||||
А ты видел мой код и приписку, идущую далее? u0432 в случае little-endian при распиливании на два байта выглядит как 0x32, 0x04, но не 0x04, 0x32
Программу твою я не смотрел, но посмотрев, вижу какую-то фигню. У меня есть дикое подозрение, что в файле нету никаких последовательностей типа "\u", в файле должны лежать только набор байтов (а точнее, набор wchar'ов) А следующую последовательность кодов мой моск попросту отказывается понимать:
0
|
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
|
|
12.02.2012, 11:27 [ТС] | 30 |
кодблокс предлагает выбрать язык файла (пунки С/С++ source), если я выбираю С, код компилируется и работает, выбираю С++ - нет.
сейчас пробую char к whar_t привести
0
|
12.02.2012, 11:39 | 31 |
Вот программа. В верхнее поле ввода вбиваем строку "0430002004370430043904340438", жмём кнопку "Convert", в нижнем поле читаем результат. Исходники, если кому-то интересно, прилагаются (у себя использовал borland builder 2007)
1
|
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
|
|
12.02.2012, 13:26 [ТС] | 34 |
0
|
Заблокирован
|
|
12.02.2012, 14:17 | 36 |
- я делаю динамический realloc памяти в плюсах
всё просто изначально есть массив из 2-х элементов lpw, 1-й инициализировали а указатель на 2-й приравниваем адресу вновь выделяемого массива из 2-х элементом коим является add и так циклически расширяем размер блока. Ошибка у меня в преобразовании кода в код WCHAR - получается что code = 430 а код WCHAR 1070, я уже сломал мозг как запихнуть коды в массив lpw
0
|
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
|
||||||
12.02.2012, 16:41 [ТС] | 37 | |||||
изначально
Код
error: cannot convert `char*' to `wchar_t*' for argument `1' to `char* unicode_to_1251(wchar_t*)' Добавлено через 12 минут
mbstowcs() тоже самое
0
|
12.02.2012, 22:13 | 38 |
dimmu, в своём примере ты делаешь два преобразования, а нужно делать только одно. Правда я не осилил два последних параметра в вызове MultiByteToWideChar
Конкретно на этот вопрос. Писать следует "MultiByteToWideChar (... (wchar_t*)str, ...)"
0
|
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
|
|
12.02.2012, 22:33 [ТС] | 39 |
http://msdn.microsoft.com/en-u... s.85).aspx int MultiByteToWideChar( __in UINT CodePage, __in DWORD dwFlags, __in LPCSTR lpMultiByteStr, __in int cbMultiByte, __out LPWSTR lpWideCharStr, - я так понимаю тут должен быть указатель на массив.или я не прав __in int cchWideChar ); что-то я не пойму ход Ваших мыслей как два
0
|
12.02.2012, 22:52 | 40 |
Я перепутал названия WideCharToMultiByte, который был в моём коде (который я содрал в инете) и MultiByteToWideChar
В примере из поста #37 ты сначала вызываешь MultiByteToWideChar (к слову говоря, в качестве 5-го параметра ты подаёшь указатель на как бы массив из одного элемента), затем вызываешь unicode_to_1251, который содержит в себе WideCharToMultiByte. И очень убедительная просьба. Не ленись тратить лишние 5 минут на то, чтобы чётко и внятно ставить вопросы. Потому что правильно поставленный вопрос - это уже половина ответа. А из твоих поставленных вопросов я даже проблему понять не могу, приходится что-то додумывать
0
|
12.02.2012, 22:52 | |
12.02.2012, 22:52 | |
Помогаю со студенческими работами здесь
40
Как перевести массив в строку? Перевести символ в двичный вид перевести с турбо паскаля в с++ вид Как перевести строку в hex и обратно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |