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

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

Неверный ввод в текстовый файл [D7, Win2k]


RealFreeman ©   (2005-11-22 16:32:00) 

Суть проблемы такова: при записи данных в файл с помощью FileWrite происходит непонятная смена кодировки. Причем делая так:
var
tmpValue: string;
hFile: THandle;
...
begin
hFile:= CreateFile(...);
tmpValue:='Привет';
FileWrite(hFile, tmpValue, length(tmpValue));
FileClose(hFile);
end.

В итоге получаю файл с непонятным содержимым, причем не зависимо от языка. Используя явное указание:

FileWrite(hFile, 'Привет!', length(tmpValue));

получаю верный результат. Но т.к. в файл нужно выгружать данные из базы в определенном формате, использовать явное указание не получится.
ОС - Win2000, Delphi 7.


Digitman   (2005-11-22 16:38:00) [1]


> смена кодировки


нет там никакой "смены кодировки" - просто в файл пишется вовсе не то что ты ожидаешь.

правильно будет так :

FileWrite(hFile, PChar(tmpValue)^, length(tmpValue));

либо так

FileWrite(hFile, tmpValue[1], length(tmpValue));

см. [1]


Anatoly Podgoretsky   (2005-11-22 16:36:00) [2]

function FileWrite(Handle: Integer; const Buffer; Count: Integer): Integer;
А ты почему вместо адреса буфера передаешь адрес переменной tmpValue?


Наверх

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