Witam
Wiem że był ten temat poruszany już ale osobiście nie mogę sobie poradzić..
Sprawa wygląda tak, wcześniej korzystając z Lazarusa wystarczyła funkcja AnsiToUtf8 i żadnego problemu z polskimi znakami nie było, robiłem "format" dysku zainstalowałem świeżego Lazarusa(nie wiem czy inną wersje w każdym razie najnowszą dostępną ze strony http://www.lazarus-ide.org/ , czy coś namieszałem...) i podana wyżej funkcja nie przynosi zamierzonego rezultatu.
Próbowałem różnych metod, ale przerasta mnie ta sprawa.
Przykładowa aplikacja:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
iniFiles;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
ini:TiniFile;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
ini := TiniFile.Create(ExtractFilePath(Application.ExeName)+'\ini.ini');
Label1.Caption:=ini.readString('0','0','error');
Memo1.Text:=ini.readString('0','0','error');
Memo1.Lines.Add(AnsiToUtf8(ini.readString('0','1','error')));
Memo1.Lines.Add('śćłóżźść');
ini.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ini := TiniFile.Create(ExtractFilePath(Application.ExeName)+'\ini.ini');
ini.WriteString('0','2',Memo1.Lines[0]);
ini.WriteString('0','3',Memo1.Lines[1]);
ini.WriteString('0','4',Memo1.Lines[2]);
ini.Free;
end;
end.