Из массива char содержащего Unicode в String

migusto

Здравствуйте! Считываю из файла строки в Unicode и помещаю их в массив char. Как мне измассив char преобразовать в строку AnsiString?
13 ответов

migusto

Зачем ты так делаешь?Попробуй PWideChar--http://www.podgoretsky.com


migusto

В модуле WideStrUtils много интересных функций для работы и преобразований с Unicode в AnsiString, например Utf8ToAnsiEx


migusto

Anatoly Podgoretsky, здравствуйте! Я так делаю потому что считваю Unicode-строку из файла функцией BlockRead.


migusto

А почему не в WideString?И где код?--http://www.podgoretsky.com


migusto

Anatoly Podgoretsky, нашел ваш пост http://www.delphimaster.ru/cgi-bin/forum.pl?id=1216800759&n=0но пока не все понятно


migusto

Anatoly Podgoretsky, нашел ваш пост http://www.delphimaster.ru/cgi-bin/forum.pl?id=1216800759&n=0но пока не все понятно
Он не относится к проблеме, это для визуальных компонент.И еще раз - где код?


migusto

Anatoly Podgoretsky,
var SrcFile: File;
 DstFile: TextFile;
 buf: array [<b>0</b>..<b>255</b>] of Char; 
 Str: String;
 numRead: Integer;
begin
 while not Eof(SrcFile) do begin
 BlockRead(SrcFile, buf, SizeOf(buf), numRead); 
 //преобразование из buf в Str
 Writeln(DstFile, Str);
 end;
end.
помещаю шестнадцатеричную строку в buf, а дальше не знаю каким образом ее пребразовть к String что бы записать в текстовый файл


migusto

BinToHex/HexToBinТолько где тут Юникод и зачем преобразовывать в HEXИ что же нужно записать в файл HEX или расшифрованое?Необходимости в buf не вижу.String совместим с PCharPChar можно записать в файл не преобразуя в String В общем ничего не понятно и не слова про задачу, какую задачу решаем?--http://www.podgoretsky.com


migusto

BinToHex/HexToBinТолько где тут Юникод и зачем преобразовывать в HEXИ что же нужно записать в файл HEX или расшифрованое?Необходимости в buf не вижу.String совместим с PCharPChar можно записать в файл не преобразуя в String В общем ничего не понятно и не слова про задачу, какую задачу решаем?--http://www.podgoretsky.com
В двоичном файле находятся пути к файлам в формате Unicode - один символ занимает два байта.Я хочу считать эти пути к файлам и преобразовть их в AnsiString и записать в текстовый файл.


migusto

WideCharToString(Source: PWideChar): string;Только в коде много несуразного, работать все равно не будет.И лучше использовать тип WideString/WideChar--http://www.podgoretsky.com


migusto

WideCharToString(Source: PWideChar): string;Только в коде много несуразного, работать все равно не будет.И лучше использовать тип WideString/WideChar--http://www.podgoretsky.com
Как сделать чтобы PWideChar указывал на массив байтов?


migusto

Как сделать чтобы PWideChar указывал на массив байтов?
указатель всегда указывает на "массив байтов"


migusto

Как сделать чтобы PWideChar указывал на массив байтов?
Использовать приведение, только все равно у тебя работать не будет, надо переписать все нафиг.