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

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

Кодировка в текстовых файлах.


Bagdat ©   (2005-07-13 08:49:00) 

Txt: TextFile;
 nametxt, strtxt: string;
 chars: Pansichar;

begin
 nametxt:=ExtractFilePath(Application.ExeName);
 AssignFile(TXT,nametxt);
 Rewrite(txt);
 strtxt:='ASDF ASDFASF ASDF ASASF';
 ChartoOem(Pansichar(strtxt), chars);
 Writeln(TXT,chars);
 CloseFile(TXT);
end;

эта процедура срабатывает, создается файл с нужными данными в нужной кодировке, но при выходе из программы выходит ошибка ACCESS VIOLATION at...
подскажите что я делаю не правильно, может как то надо освобождать память?


Anatoly Podgoretsky   (2005-07-13 09:16:00) [1]

Так он и в твоем коде проколется, при S1 = ''.


Digitman   (2005-07-13 09:16:00) [2]


> MBo ©   (13.07.05 09:12) [4]


> опять скажет, что ни фига не работает


ну это уж его личная драма)


Bagdat   (2005-07-13 09:14:00) [3]

MBo ©   (13.07.05 09:01) [2]

thanks, все получилось.


MBo   (2005-07-13 09:12:00) [4]

>Digitman ©   (13.07.05 09:05) [3]
так автор проколется с константной строкой и опять скажет, что ни фига не работает :)


Digitman   (2005-07-13 09:05:00) [5]

ChartoOem(Pansichar(strtxt), Pansichar(strtxt));
Writeln(TXT,strtxt);


MBo   (2005-07-13 09:01:00) [6]

В твоем случае память под chars не выделена.
Можно сделать так:

s1,s2: string;

s1:='Мама мыла раму';
SetLength(s2,Length(s1));
ChartoOem(PChar(s1), PChar(s2));
Writeln(TXT,s2);


Kot Andrei   (2005-07-13 09:00:00) [7]

внимательно посмотри сюда: (как твой файл зовут?)

>> nametxt:=ExtractFilePath(Application.ExeName);

и сюда

>> ChartoOem(Pansichar(strtxt), chars);


Наверх

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