![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кодировка в текстовых файлах.
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);