Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прочитать из файла строку 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]

делим задачу на составляющие и выясняем, в чем же сложность


Наверх

Титульная страница Поиск, карта сайта Написать письмо