плз помогите ))

  • Автор темы LordofDarkness
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

LordofDarkness

#1
помогите......мне нужно сделать так чтобы считать данные с досовского файла текстового......просто при открытии файла и считывании....он естественно не понимает кодировку кто нить может сталкивался с этим ?? ответти плз......просто мне нужно именно с этого файла считать все....
 

vital

Больной Компом Детектед
29.01.2006
2 432
34
#2
хм..как вариант..
сначала конвертируешь файл в вин кодировку потом считываешь из конвертированного файла..
Код:
function DosToWin(St: string): string;
var
Ch: PChar;
begin
Ch := StrAlloc(Length(St) + 1);
OemToAnsi(PChar(St), Ch);
Result := Ch;
StrDispose(Ch)
end;
что делает функция понятно ну и че нить в духе..
Код:
var 
f,f1: TextFile; 
instr,outstr:string;
begin
assign(f,'ФайлВДосовскойКодировке');
assign(f1,'ФайлКудаБудетЗаписанКонвертированныйТекст');
reset(f);
rewrite(f1);
while not eof(f) do
begin
ReadLn(f, instr);
outstr:=DosToWin(instr);
writeln(f1,outstr);
end;
closefile(f);
closefile(f1);
end;
добавь только проверку на существование файла, и где нить в OnDestroy формы удаляй ненужный файл в вин кодировке..
 

vital

Больной Компом Детектед
29.01.2006
2 432
34
#3
и ещё...DelphI посмотри свои настройки..
 
L

LordofDarkness

#5
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Font.Charset := OEM_CHARSET;
end;



все очень просто ;)
 

vital

Больной Компом Детектед
29.01.2006
2 432
34
#6
ты изначально не говорил, что загружаешь файл в мемо..но так тоже ничего..;)
 
Статус
Закрыто для дальнейших ответов.