![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как прочитать из файла строку UNICODE с последующим переводом... [D7, XP]
AlexanderMS © (2006-07-06 18:25:00)Помогите, пожалуйста, как прочитать из файла строку UNICODE с помощью TFileStream с последующим переводом её в строку типа string?
Apollon_604 (2006-07-07 18:56:00) [1]
var
FileStream: TFileStream;
StrStream: TStringStream;
s: string;
begin
FileStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
StrStream := TStringStream.Create('');
FileStream.Position := 0;
StrStream.CopyFrom(FileStream, FileStream.Size);
s := StrStream.DataString;
FileStream.Free;
StrStream.Free;
end;
AlexanderMS (2006-07-07 18:43:00) [2]
> делим задачу на составляющие и выясняем, в чем же сложность
Уже поделили. А сложность - в отсутствии знаний и умений. Пробовал так:
var
F : TFileStream;
W : PWideChar;
L : integer;
Value : string;
.......
begin
.......
F.Read(L, SizeOf(L)); // длина строки (количество полученных символов)
F. Read(W, L * 2); //умножаем на 2, так как указано в 2 раза меньше
Value := WideCharToString(W); // на этом и ошибка
...
Пробовал и просто WideString читать, а потом в PWideChar переводить.
-------------
Как мне это сделать?
Apollon_604 (2006-07-06 20:58:00) [3]Прросто столкнулся с проблемой при сериализации, что D7 сохраняет нелатинские символы в виде юникодовских кодов (типа #1013) и TStream возвращает их также, т.е. не конвертируя обратно... Так вот, если исходная строка содержит такие символы, то их нужно преобразовывать.
Ketmar (2006-07-06 20:31:00) [4]зачем в утф? просто присвоить, да и всё.
Apollon_604 (2006-07-06 19:05:00) [5]
UnicodeToUtf8
Jeer (2006-07-06 19:00:00) [6]делим задачу на составляющие и выясняем, в чем же сложность