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

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

Не могу сделать перекодировку


Frozzen ©   (2004-12-17 17:39:00) 

Подскажите в чем дело, пишу следующие

buf : array [1..4000]of Char;
RecordBuffer : array [1..4000]of Char;
DFile: TFileStream;
S : String;

заполнение буфера
 RecordBuffer[i] := S[i];

запись в файл для каждой строки
CharToOem(@RecordBuffer, @buf);
DFile.WriteBuffer(Buf, FHeader.RecordSize);

Первая строчка записывается в нужной кодировке, остальные нет ?


Alexander Panov   (2004-12-17 18:57:00) [1]

Используй OemToCharBuff


Frozzen   (2004-12-17 17:56:00) [2]

насчет добавления нуля не понял
тормажу, целый день уже этот конвектор пишу


Frozzen   (2004-12-17 17:53:00) [3]

почему не понемаю


Frozzen   (2004-12-17 17:52:00) [4]

посмотрел дебагером
первый раз проходит все успешно
а во второй в RecordBuffer перед CharToOem
уже в дос кодировке


TUser   (2004-12-17 17:46:00) [5]

Там поинтеры на null-terminated string. Соотвественно CharToOem доходит до первого нулевого символа и заканчивает свою работу. Решение - по отдельным строчкам перекодировать


MBo   (2004-12-17 17:46:00) [6]

после строки-источника ноль добавь


Наверх

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