Polskie znaki w zapisywanym pliku txt

0

Poproszę o pomoc w rozwiązaniu problemu z polskimi znakami w pliku txt tworzonym z programu. Tworzę plik tekstowy o pewnej ustalonej strukturze na podstawie wczytanego wcześniej innego pliku tekstowego... ale po kolei:

Wczytuję poszczególne linie tekstu z pliku i podstawiam do komponentu TEdit poprzez zmienne typu string:

procedure TForm1.WczytajClick(Sender: TObject);
begin
   AssignFile(TFO, 'testx.txt');
   Reset(TFO);
      Readln(TFO, Ques);
      Readln(TFO, Answ);
   CloseFile(TFO);
   Form1.Pytanie.Text:=Ques;
   Form1.Odpowiedz.Text:=Answ;
end;

TEdit ma fonty ustawione na:
Font - Charset = EASTEUROPE_CHARSET
Font - Name = Times New Roman

Po ewentualnym poprawieniu w TEdit zapisuję do pliku:

procedure TForm1.ZapiszClick(Sender: TObject);
begin
  Ques:=Form1.Pytanie.Text;
  Answ:=Form1.Odpowiedz.Text;
  AssignFile(TFZ, 'testy.txt');
  Append(TFZ);
     Writeln(TFZ, '&ques=',Ques,'&');
     Writeln(TFZ, '&answ=',Answer,'&');
  CloseFile(TFZ);
end;

I tu zaczyna się problem... w pliku wczytywanym polskie znaczki są. W TEdit też jest wszystko ok ale po zapisaniu do pliku wynikowego polskich znaków już nie ma... są po prostu wycięte!?

Wszystko co znalazłem w google i na forach dotyczy uzyskiwania polskich znaków bezpośrednio w Delphi lub zmiany kodowania z WIN 1250 na ISO 8859-2... a ja mam oba pliki w 1250 i bawię się z wszystkim pod Windą... kombinowałem z ustawieniem czcionki w TEdit ale to też nic nie dało... może jest jakieś ustawienie formatu pliku jaki jest zapisywany?

Macie jakieś pomysły czemu tak się dzieje? :-(

0

Trudno mi odpowiedzieć na to pytanie. Napisałem taki oto programik i działa:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Wczytaj: TButton;
    Zapisz: TButton;
    Pytanie: TEdit;
    Odpowiedz: TEdit;
    procedure ZapiszClick(Sender: TObject);
    procedure WczytajClick(Sender: TObject);
  private
    { Private declarations }
    Ques, Answ :string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

var TFZ :TextFile;
{$R *.dfm}

procedure TForm1.ZapiszClick(Sender: TObject);
begin
  Ques:=Form1.Pytanie.Text;
  Answ:=Form1.Odpowiedz.Text;
  AssignFile(TFZ, 'plik.txt');
  Append(TFZ);
     Writeln(TFZ, '&ques=',Ques,'&');
     Writeln(TFZ, '&answ=',Answ,'&');
  CloseFile(TFZ);
end;

procedure TForm1.WczytajClick(Sender: TObject);

begin
   AssignFile(TFZ, 'plik.txt');
   Reset(TFZ);
      Readln(TFZ, Ques);
      Readln(TFZ, Answ);
   CloseFile(TFZ);
   Form1.Pytanie.Text:=Ques;
   Form1.Odpowiedz.Text:=Answ;
end;

end.

Sam nie wiem. Nawet jeśli kompilator nie obsługiwałby polskich znaków, to nie zwalnia go z zapisania stringu w formie oryginalnej. Spróbuj skompilować mój program i powiedz czy działa. Nic więcej w tej chwili nie mogę pomóc. Życzę powodzenia. Na boku dodam, że jest to bardzo konkretnie sformułowany post. Dużo łatwiej się na takie odpowiada. Powodzenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1