Решение проблем с русским языком в Lazarus, Delphi-подобной среда разработки для FreePascal (http://iar.spb.ru/tips/lazarus-in-linux).URL: http://iar.spb.ru/tips/lazarus-in-linux
Новость: http://www.opennet.me/opennews/art.shtml?num=12206
В версии Lazarus 0.9.26, не удаётся инвертировать строки, содержащие русскую раскладку. В версии Lazarus 0.9.24 подобной проблемы не было.
unit Unit1;{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons;type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
label2: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
procedure InvertString(var InputSTR, OutputSTR: string);
end;var
Form1: TForm1;
s, s1: UTF8String;implementation
{ TForm1 }
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
InvertString(s, s1);
label2.Caption:=s1;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
s:=''; s1:='';
s:= AnsiToUtf8(inputbox('Введите строчку для инвертирования', 'Ваша строка:', ''));
label1.Caption:= Utf8ToAnsi(s);
end;procedure TForm1.InvertString(var InputSTR, OutputSTR: string);
var i, j, k :integer;
b :string;
begin
i:=1; j:=0; k:=0; OutputSTR:='';
b:=InputSTR;
for i:=1 to length(InputSTR) do j:=j+1;
for k:=j downto 1 do
OutputSTR:=OutputSTR+b[k];
end;initialization
{$I unit1.lrs}end.
Алгоритм этот ранее я подвязывал, чтобы имя файла узнавать при выборе его через OpenDialog, до 1-ого "\" символы в строке считал. А теперь пути Windows, содержащие русские символы не работают. *DONT_KNOW*