![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Конвертация в Unicode
Term © (2006-11-21 13:08:00)как сконвертировать строку из DOS в Unicode
guav (2006-11-21 18:50:00) [1]Обёртки для MultibyteToWideChar и WideCharToMultibyte
http://www.kladovka.net.ru/index.cgi?pid=list&rid=378
Term (2006-11-21 17:31:00) [2]ладно не смейтесь надо мной, заработало таки спасибо :) что помогли
Anatoly Podgoretsky (2006-11-21 17:09:00) [3]> clickmaker (21.11.2006 17:05:34) [34]
Ему и и намеков кучу сделали и прямо тоже сказали.
clickmaker (2006-11-21 17:05:00) [4]
> [32] Term © (21.11.06 16:57)
>
> >
> > да дело-то не в этом...
>
> покажите как мне сконвертировать...
тебе в [30] уж настолько прозрачный намек сделали...
Anatoly Podgoretsky (2006-11-21 17:00:00) [5]> clickmaker (21.11.2006 16:55:31) [31]
> да дело-то не в этом...
До этого я уже дошел :-)
Поэтому мы и здесь.
Term (2006-11-21 16:57:00) [6]
>
> да дело-то не в этом...
покажите как мне сконвертировать...
а в теории я разберусь если еще и будет работающий пример под рукой
clickmaker (2006-11-21 16:55:00) [7]
> [29] Anatoly Podgoretsky © (21.11.06 16:54)
> > clickmaker (21.11.2006 15:50:12) [12]
>
> А Я бы использовал SetLength и забыл бы про выделение
да дело-то не в этом...
Anatoly Podgoretsky (2006-11-21 16:55:00) [8]> Term (21.11.2006 16:15:16) [16]
Выделять надо до использования, а не после.
Anatoly Podgoretsky (2006-11-21 16:54:00) [9]> clickmaker (21.11.2006 15:50:12) [12]
А Я бы использовал SetLength и забыл бы про выделение или же WS := S такой же результат.
clickmaker (2006-11-21 16:52:00) [10]
> [27] Term © (21.11.06 16:45)
хорошо... берем эти строки
nRet:=MultibyteToWideChar(CP_OEMCP, MB_COMPOSITE, ansichar, Length(Form1.Edit1.Text), widestring, Length(Form1.Edit1.Text));
widestring := PWideChar(LocalAlloc(LPTR, nRet * 2 + 2));
во 2-й строке что делается?
Term (2006-11-21 16:45:00) [11]вот тут не ткнёш...
потому и была строка по которой партбилет на стол...
clickmaker (2006-11-21 16:43:00) [12]ну ткни пальцем, где в этой строке
nRet := MultiByteToWideChar(OEMCP, MB_PRECOMPOSED, ansichar, -1, nil, 0);
конвертация widestring?
Term (2006-11-21 16:41:00) [13]
> clickmaker © (21.11.06 13:10) [1]
> MultibyteToWideChar()
я так понял первоначально что для этого нужна функция которую ты показал...
clickmaker (2006-11-21 16:38:00) [14]
> [23] Term © (21.11.06 16:36)
> до твоего вопроса я думал что там должна быть сконверченная
> строка
так... а где сам процесс конвертации?
Term (2006-11-21 16:36:00) [15]до твоего вопроса я думал что там должна быть сконверченная строка...
если я глубоко запутался, тогда как оно должно быть? чтоб сконвертировать...
clickmaker (2006-11-21 16:31:00) [16]
> [21] Term © (21.11.06 16:29)
не переводи стрелки.
что по-твоему должно быть в widestring после
nRet := MultiByteToWideChar(OEMCP, MB_PRECOMPOSED, ansichar, -1, nil, 0);
widestring := PWideChar(LocalAlloc(LPTR, nRet * 2 + 2));
и почему?
Term (2006-11-21 16:29:00) [17]я хочу сконвертить строку которую поместил в Form1.Edit1.Text в юникод и поместить её в Form1.Edit2.Text и записать в файл...
clickmaker (2006-11-21 16:25:00) [18]
> эти строки вместо моих тоже возвращают widestring=nil
а что должны?
Term (2006-11-21 16:23:00) [19]понял почитать...
щас покажите как оно должно быть
nRet := MultiByteToWideChar(OEMCP, MB_PRECOMPOSED, ansichar, -1, nil, 0);
widestring := PWideChar(LocalAlloc(LPTR, nRet * 2 + 2));
эти строки вместо моих тоже возвращают widestring=nil
clickmaker (2006-11-21 16:17:00) [20]
> nRet:=MultibyteToWideChar(CP_OEMCP, MB_COMPOSITE, ansichar,
> Length(Form1.Edit1.Text), widestring, Length(Form1.Edit1.Text));
> widestring := PWideChar(LocalAlloc(LPTR, nRet * 2 + 2));
а вот за такое можно и партбилет на стол положить.
Мужик, почитай матчасть. Что такое строки, Char, WideChar, что такое указатели, зачем память выделять и когда?