summaryrefslogtreecommitdiff
path: root/tools/langpackmgr/Unit1.pas
diff options
context:
space:
mode:
Diffstat (limited to 'tools/langpackmgr/Unit1.pas')
-rw-r--r--tools/langpackmgr/Unit1.pas594
1 files changed, 270 insertions, 324 deletions
diff --git a/tools/langpackmgr/Unit1.pas b/tools/langpackmgr/Unit1.pas
index a0083263d2..5267e27673 100644
--- a/tools/langpackmgr/Unit1.pas
+++ b/tools/langpackmgr/Unit1.pas
@@ -4,327 +4,177 @@ interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
- System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ExtDlgs, Vcl.StdCtrls,
- Vcl.CheckLst, Vcl.ComCtrls, Vcl.Buttons, ShellApi;
+ System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
+ Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Grids, ShellApi;
type
TForm1 = class(TForm)
-
- SaveTextFileDialog1: TSaveTextFileDialog;
-
- MainMenu1: TMainMenu;
- File1: TMenuItem;
- Open1: TMenuItem;
-
- ListBox1: TListBox;
- ListBox2: TListBox;
-
Button1: TButton;
Button2: TButton;
-
- BitBtn1: TBitBtn;
- BitBtn2: TBitBtn;
- BitBtn3: TBitBtn;
- Edit1: TEdit;
+ Button3: TButton;
Label1: TLabel;
+ Label2: TLabel;
+ Label3: TLabel;
Memo1: TMemo;
Memo2: TMemo;
+ RadioGroup1: TRadioGroup;
+ ComboBox1: TComboBox;
+ StringGrid1: TStringGrid;
- procedure Open1Click(Sender: TObject); // процедура выбора файла =head=
procedure FormCreate(Sender: TObject);
- procedure Button2Click(Sender: TObject); // переключатель
- procedure ListBox1Click(Sender: TObject);// выбор обрабатываемого файла
- procedure listfiles;// получение списка файлов в listbox
- procedure progress; // парсинг текущего файла перевода
- procedure parsing;// общий прогресс проверки перевода
- procedure ListBox2Click(Sender: TObject);
- procedure viewline;
- procedure BitBtn1Click(Sender: TObject);
- procedure BitBtn2Click(Sender: TObject);
+ procedure Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
- procedure BitBtn3Click(Sender: TObject);
+ procedure Button2Click(Sender: TObject);
+ procedure Button3Click(Sender: TObject);
+ procedure viewline;
+ procedure RadioGroup1Click(Sender: TObject);
+ procedure ComboBox1Change(Sender: TObject);
+ procedure Draw(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
+ State: TGridDrawState);
+
+
private
{ Private declarations }
-
public
{ Public declarations }
end;
var
Form1: TForm1;
- openDialog : TOpenDialog;
openfile:textfile;
+ lang,stmp: string;
+ str: array [0..40,0..6000] of string;
+ ffile:array [0..6000] of string;
+ core: array [0..30] of string;
+ l:array [0..6000] of integer;
+ ns:array [0..6000] of boolean;
+ ii,i,n:integer;
- stmp: string; // название текущего файла перевода
- lang: string; // выбранный перевод
- sfull: array [0..6000] of string; // считывается выбранный перевод
- ifull: integer; // строк в выбранном переводе
- se: array [0..200,0..6000] of string; // английский файл перевода
- st: array [0..200,0..6000] of string; // строки перевода
-
- sfilter:array [1..30] of string; // названия файлов основного перевода
- ifilter: integer; // количество файлов основного перевода
- bfilter: boolean; // флаг файла основного перевода
-
- n,t:integer; // всего строк/переведено строк
- il,ii,iindex:integer; // счетчики
- newlines:boolean;
-
- adres: array [0..6000]of integer;
- ilines: array [0..200] of integer; // строк в файле
- nlines: array [0..200] of integer; // всего строк для перевода
- tlines: array [0..200] of integer; // строк переведено
-
- lineindex: array [0..2000] of integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
-begin
- assignfile(openfile,ExtractFilePath(Application.ExeName)+
- '\corebasic.txt',CP_UTF8);
- reset(openfile);
- readln(openfile);
- ifilter:=0;
- while not eof(openfile) do
- begin
- ifilter:=ifilter+1;
- readln(openfile,sfilter[ifilter]);
- end;
- listfiles;
-end;
-
-///////////////////////////////////////////////////////////////////////////////
-procedure TForm1.ListBox1Click(Sender: TObject);
-begin
- iindex:=ListBox1.ItemIndex;
- listbox2.Items.Clear;
- memo1.Lines.Clear;
- memo1.Lines.add('Plugin:'+listbox1.Items[iindex]);
- memo1.Lines.add('Lines:'+inttostr(tlines[iindex])
- +'/'+inttostr(nlines[iindex]));
- memo1.Lines.add('Completed:'
- +copy(floattostr(100*tlines[iindex]/nlines[iindex]),1,4)+'%');
- il:=-1;
- for ii:=0 to ilines[iindex] do
- begin
- if (copy(se[iindex,ii],1,1)='[') and (st[iindex,ii]='') then
- begin
- listbox2.Items.add(se[iindex,ii]);
- adres[listbox2.items.Count-1]:=ii;
- il:=il+1;
- lineindex[il]:=ii;
- end;
- end;
-end;
-///////////////////////////////////////////////////////////////////////////////
-procedure TForm1.ListBox2Click(Sender: TObject);
-var il,index:integer;
-begin
- index:=strtoint(label1.Caption)-1;
- if index<>-1 then
- begin
- // запись строки
- if memo2.Lines.Count=memo1.Lines.Count then
- st[iindex,adres[index]]:='';
- il:=0;
- while il<memo2.Lines.Count do
- begin
- st[iindex,adres[index]]:=
- st[iindex,adres[index]]+memo2.lines[il];
- if il<>memo2.Lines.Count-1 then
- st[iindex,adres[index]]:=
- st[iindex,adres[index]]+'\n';
- il:=il+1;
- end;
- end;
- label1.Caption:=inttostr(listbox2.ItemIndex+1);
- memo1.Lines.Clear;
- memo2.Lines.Clear;
- viewline;
-end;
-///////////////////////////////////////////////////////////////////////////////
-procedure TForm1.Open1Click(Sender: TObject);
-begin
- chdir(ExtractFilePath(Application.ExeName));
- opendialog:=TOpenDialog.Create(self);
- opendialog.filter:='Langpack Head File|=HEAD=.txt';
- opendialog.initialDir:=GetCurrentDir;
- opendialog.options:=[ofFileMustExist];
- if (opendialog.execute) then
- begin
- lang:=copy(openDialog.filename,
- length(ExtractFilePath(Application.ExeName))+1,
- length(openDialog.filename)-
- length(ExtractFilePath(Application.ExeName))-11);
- chdir(ExtractFilePath(openDialog.filename));
- form1.Caption:='LangPackMgr: '+lang;
- ListBox1.enabled:=true;
- parsing;
- end;
-end;
-///////////////////////////////////////////////////////////////////////////////
-procedure tform1.parsing;
-begin
- memo1.lines.clear;
- listbox2.Items.clear;
- n:=0;t:=0;
- for iindex:=0 to listbox1.items.Count-1 do
- progress;
- if button2.Caption='Custom Plugins'
- then memo1.Lines.Add('Language:'+lang+' (Standart Bulid)')
- else memo1.Lines.Add('Language:'+lang+' (Custom Plugins)');
- memo1.Lines.Add('Translated:'+copy(floattostr(100*t/n),1,4)+'%');
-end;
-///////////////////////////////////////////////////////////////////////////////
-procedure tform1.progress;
-begin
- if copy(listbox1.Items[iindex],1,2)='=C' then
- stmp:='=CORE=' else
- if copy(listbox1.Items[iindex],1,2)='p|' then
- stmp:='\plugins\'+copy(listbox1.Items[iindex],3,
- length(listbox1.Items[iindex])-2) else
- if copy(listbox1.Items[iindex],1,2)='w|' then
- stmp:='\weather\'+copy(listbox1.Items[iindex],3,
- length(listbox1.Items[iindex])-2);
-//
- for ifull := 0 to 4000 do sfull[ifull]:='';
- if fileexists(ExtractFilePath(Application.ExeName)
- +'\'+lang+'\'+stmp+'.txt') then
- begin
- assignfile(openfile,ExtractFilePath(Application.ExeName)
- +'\'+lang+'\'+stmp+'.txt',CP_UTF8);
- reset(openfile);
- ifull:=0;
- while not Eof(openfile) do
- begin
- ifull:=ifull+1;
- ReadLn(openfile,sfull[ifull]);
- end;
- closefile(openfile);
- end;
- for ii := 0 to 6000 do st[iindex,ii]:='';
- assignfile(openfile,ExtractFilePath(Application.ExeName)
- +'\english\'+stmp+'.txt',CP_UTF8);
- reset(openfile);
- ilines[iindex]:=-1;
- nlines[iindex]:=0;
- tlines[iindex]:=0;
- while not Eof(openfile) do
- begin
- ilines[iindex]:=ilines[iindex]+1;
- ReadLn(openfile,se[iindex,ilines[iindex]]);
- if (copy(se[iindex,ilines[iindex]],1,1)='[') then
- begin
- nlines[iindex]:= nlines[iindex]+1;
- for ii:=0 to ifull-1 do
- if se[iindex,ilines[iindex]]=sfull[ii] then
- if (copy(sfull[ii+1],1,1)<>';')
- and(copy(sfull[ii+1],1,1)<>'[')
- and(copy(sfull[ii+1],1,1)<>'')
- then
- begin
- st[iindex,ilines[iindex]]:=sfull[ii+1];
- tlines[iindex]:=tlines[iindex]+1;
- end;
- end;
- end;
- closefile(openfile);
- n:=n+nlines[iindex];
- t:=t+tlines[iindex];
-end;
-///////////////////////////////////////////////////////////////////////////////
-procedure tform1.listfiles;
-Var
+var
SR:TSearchRec;
Res:Integer;
- i:integer;
begin
- n:=0;t:=0;
- ListBox1.Items.Clear;
- if button2.Caption='Custom Plugins' then
- begin
- Form1.ListBox1.Items.Add('=CORE=');
- for i := 1 to ifilter do
- Form1.ListBox1.Items.Add('p|'+sfilter[i]);
- end else
- begin
- // plugins
- Res:=FindFirst(ExtractFilePath(Application.ExeName)
- +'\english\plugins\*.txt', faAnyFile, SR);
- while Res = 0 do
+ combobox1.Items.Clear;
+ combobox1.Items.Add('=CORE=');
+ Res:=FindFirst(ExtractFilePath(Application.ExeName)
+ +'\english\plugins\*.txt', faAnyFile, SR);
+ while Res = 0 do
begin
- bfilter:=false;
- for i:=1 to ifilter do
- if sfilter[i]=copy(extractfilename(SR.Name),
- 1,length(extractfilename(SR.Name))-4) then bfilter:=true;
- if bfilter=false then
- Form1.ListBox1.Items.Add('p|'+copy(extractfilename(SR.Name),
- 1,length(extractfilename(SR.Name))-4));
- Res:=FindNext(SR);
+ Form1.comboBox1.Items.Add('p|'+copy(extractfilename(SR.Name),
+ 1,length(extractfilename(SR.Name))-4));
+ Res:=FindNext(SR);
end;
- FindClose(SR);
- // weather
- Res:=FindFirst(ExtractFilePath(Application.ExeName)
- +'\english\weather\*.txt', faAnyFile, SR);
- while Res = 0 do
+ FindClose(SR);
+
+ Res:=FindFirst(ExtractFilePath(Application.ExeName)
+ +'\english\weather\*.txt', faAnyFile, SR);
+ while Res = 0 do
begin
- Form1.ListBox1.Items.Add('w|'+copy(extractfilename(SR.Name),
- 1,length(extractfilename(SR.Name))-4));
- Res:=FindNext(SR);
+ Form1.comboBox1.Items.Add('w|'+copy(extractfilename(SR.Name),
+ 1,length(extractfilename(SR.Name))-4));
+ Res:=FindNext(SR);
end;
- end;
-end;
-// копирование шаблона/////////////////////////////////////////////////////////
-procedure TForm1.BitBtn1Click(Sender: TObject);
-begin
-memo2.Lines:=memo1.Lines;
-end;
-// гугл //////////////////////////////////////////////////////////
-procedure TForm1.BitBtn2Click(Sender: TObject);
+ FindClose(SR);
+ end;
+
+
+
+procedure TForm1.Button2Click(Sender: TObject);
+
var str:string; i:integer;
begin
- str:='http://translate.google.com/?hl=&ie=&langpair=en#en/'+edit1.Text+'/';
-for i:=0 to memo1.Lines.Count-1 do
-begin
-str:=str+memo1.Lines[i];
-if i<memo1.Lines.Count-1 then
-str:=str+'+%0A+';
+ str:='http://translate.google.com/?hl=&ie=yhgg#auto/';
+ if form1.Caption='belarusian' then str:=str+'be/';
+ if form1.Caption='bulgarian' then str:=str+'bg/';
+ if form1.Caption='chinese' then str:=str+'zh-CN/';
+ if form1.Caption='czech' then str:=str+'cs/';
+ if form1.Caption='duth' then str:=str+'da/';
+ if form1.Caption='estonian' then str:=str+'et/';
+ if form1.Caption='french' then str:=str+'fr/';
+ if form1.Caption='german' then str:=str+'de/';
+ if form1.Caption='herbrew' then str:=str+'iw/';
+ if form1.Caption='hungarian' then str:=str+'hu/';
+ if form1.Caption='italian' then str:=str+'it/';
+ if form1.Caption='japanese' then str:=str+'ja/';
+ if form1.Caption='korean' then str:=str+'ko/';
+ if form1.Caption='norwegian' then str:=str+'no/';
+ if form1.Caption='polish' then str:=str+'pl/';
+ if form1.Caption='portuguese_br' then str:=str+'pt/';
+ if form1.Caption='russian' then str:=str+'ru/';
+ if form1.Caption='slovak' then str:=str+'sk/';
+ if form1.Caption='spanish' then str:=str+'es/';
+ if form1.Caption='turkish' then str:=str+'tr/';
+ if form1.Caption='ukrainian' then str:=str+'uk/';
+ for i:=0 to memo1.Lines.Count-1 do
+ begin
+ str:=str+memo1.Lines[i];
+ if i<memo1.Lines.Count-1 then
+ str:=str+'+%0A+';
+ end;
+ ShellExecute(0, 'open',PChar(str), nil, nil, SW_SHOW);
end;
- ShellExecute(0, 'open',PChar(str), nil, nil, SW_SHOW);
+procedure TForm1.Button3Click(Sender: TObject);
+ var fi:integer;
+begin
+
+ rewrite(openfile);
+ writeln(openfile, str[0,0]);
+ for fi:=1 to n do
+ begin
+ if copy(str[0,fi],1,1)=';' then
+ writeln(openfile, str[0,fi]);
+ if (copy(str[0,fi],1,1)='[') and (str[1,fi]<>'') then
+ begin
+ writeln(openfile, str[0,fi]);
+ writeln(openfile, str[1,fi]);
+ end;
+ end;
+ CloseFile(openfile);
end;
-procedure TForm1.BitBtn3Click(Sender: TObject);
+procedure TForm1.Button1Click(Sender: TObject);
begin
- memo1.Lines.Clear;
- memo2.Lines.Clear;
- st[iindex,adres[listbox2.ItemIndex]]:='';
- viewline;
+ memo2.Lines:=memo1.Lines;
end;
-// флаг переключения //////////////////////////////////////////////////////////
-
-
-procedure TForm1.Button2Click(Sender: TObject);
+procedure TForm1.Click(Sender: TObject);
+var sa:integer; da:string;
begin
- if button2.Caption='Custom Plugins'
- then button2.Caption:='Core and basic'
- else button2.Caption:='Custom Plugins';
- listfiles;
- if ListBox1.enabled=true then
- parsing;
+ da:=str[1,l[ii]];
+ str[1,l[ii]]:='';
+ for sa:=0 to memo2.Lines.Count-1 do
+begin
+ str[1,l[ii]]:=str[1,l[ii]]+memo2.Lines[sa];
+ if sa<>memo2.Lines.Count-1 then str[1,l[ii]]:=str[1,l[ii]]+'\n';
+end;
+ if str[1,l[ii]]<>da then ns[ii]:=true;
+memo1.Lines.clear;
+memo2.Lines.clear;
+viewline;
+ii:=stringgrid1.Row;
+stringgrid1.rowcount:=stringgrid1.rowcount+1;
+stringgrid1.rowcount:=stringgrid1.rowcount-1;
end;
+
procedure tform1.viewline;
var im,m:integer;
+untranslate,changes: integer;
sse:string;
begin
- m:=1; sse:=copy(se[iindex,lineindex[listbox2.itemindex]],2,
- length(se[iindex,lineindex[listbox2.itemindex]])-2);
+ m:=1;
+ if RadioGroup1.itemindex=0
+ then
+ sse:=copy(str[0,l[stringgrid1.row]],2, length(str[0,l[stringgrid1.row]])-2)
+ else
+ sse:=str[2,l[stringgrid1.row]];
for im := 1 to length(sse)-1 do
begin
if copy(sse,im,2)='\n' then
@@ -335,74 +185,170 @@ begin
end;
if m=1 then memo1.Lines.Add(sse)
else memo1.Lines.Add(copy(sse,m,length(sse)-m+2));
-
- if st[iindex,adres[listbox2.ItemIndex]]<>'' then
+ if str[1,l[stringgrid1.row]]<>'' then
begin
m:=1;
- for im := 1 to length(st[iindex,adres[listbox2.ItemIndex]])-1 do
+ for im := 1 to length(str[1,l[stringgrid1.row]])-1 do
begin
- if copy(st[iindex,adres[listbox2.ItemIndex]],im,2)='\n' then
+ if copy(str[1,l[stringgrid1.row]],im,2)='\n' then
begin
- memo2.Lines.Add(copy(st[iindex,adres[listbox2.ItemIndex]],m,im-m));
+ memo2.Lines.Add(copy(str[1,l[stringgrid1.row]],m,im-m));
m:=im+2;
end;
end;
- if m=1 then memo2.Lines.Add(st[iindex,adres[listbox2.ItemIndex]])
- else memo2.Lines.Add(copy(st[iindex,adres[listbox2.ItemIndex]],m,
- length(st[iindex,adres[listbox2.ItemIndex]])-m+2));
+ if m=1 then memo2.Lines.Add(str[1,l[stringgrid1.row]])
+ else memo2.Lines.Add(copy(str[1,l[stringgrid1.row]],m,
+ length(str[1,l[stringgrid1.row]])-m+2));
end;
- memo2.SetFocus;
+
+ changes:=0;
+ for im:= 0 to stringgrid1.rowcount-1 do
+ if ns[im]=true then changes:=changes+1;
+ label2.Caption:='Changes:'+inttostr(changes);
+ untranslate:=0;
+ for im:= 0 to stringgrid1.rowcount-1 do
+ if str[1,l[im]]='' then untranslate:=untranslate+1;
+ label3.Caption:='Untranslate:'+inttostr(untranslate);
+
end;
-///////////////////////////////////////////////////////////////////////////////
-///
-// Процедура сохранения обработанного файла
-procedure TForm1.Button1Click(Sender: TObject);
-var il,index:integer;
+
+procedure TForm1.ComboBox1Change(Sender: TObject);
+
begin
- index:=strtoint(label1.Caption)-1;
- if index<>-1 then
- begin
- // запись строки
- if memo2.Lines.Count=memo1.Lines.Count then
- st[iindex,adres[index]]:='';
- il:=0;
- while il<memo2.Lines.Count do
+ for i := 0 to 6000 do
begin
- st[iindex,adres[index]]:=
- st[iindex,adres[index]]+memo2.lines[il];
- if il<>memo2.Lines.Count-1 then
- st[iindex,adres[index]]:=
- st[iindex,adres[index]]+'\n';
- il:=il+1;
+ for n:=0 to 40 do str[n,i]:='';
+ l[i]:=0;
+ ns[i]:=false;
+ memo1.Lines.Clear;
+ memo2.Lines.Clear;
end;
+ if ComboBox1.Text='=CORE=' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+
+ '\english\=CORE=.txt',CP_UTF8);
+ if copy(ComboBox1.Text,1,2)='w|' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+
+ '\english\weather\'+copy(ComboBox1.Text,3,length(ComboBox1.Text)-2)+'.txt',CP_UTF8);
+ if copy(ComboBox1.Text,1,2)='p|' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+
+ '\english\plugins\'+copy(ComboBox1.Text,3,length(ComboBox1.Text)-2)+'.txt',CP_UTF8);
+ reset(openfile);
+ readln(openfile,stmp);
+ str[0,0]:=stmp;
+ stringgrid1.Rowcount:=0;
+ n:=0;
+while not eof(openfile) do
+begin
+ n:=n+1;
+ readln(openfile,stmp);
+ str[0,n]:=stmp;
+ if copy(stmp,1,1)='[' then
+ begin
+ l[stringgrid1.Rowcount-1]:=n;
+ stringgrid1.Cells[0,stringgrid1.Rowcount-1]:=stmp;
+ stringgrid1.Rowcount:=stringgrid1.Rowcount+1;
end;
+end;
+//////////////////////////////////////////////////////////
+
+if RadioGroup1.Items.Count=2 then
+begin
+ if ComboBox1.Text='=CORE=' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+
+ '\'+RadioGroup1.Items[1]+'\=CORE=.txt',CP_UTF8);
+ if copy(ComboBox1.Text,1,2)='w|' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+'\'
+ +RadioGroup1.Items[1]+
+ '\weather\'+copy(ComboBox1.Text,3,length(ComboBox1.Text)-2)+'.txt',CP_UTF8);
+ if copy(ComboBox1.Text,1,2)='p|' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+'\'
+ +RadioGroup1.Items[1]+
+ '\plugins\'+copy(ComboBox1.Text,3,length(ComboBox1.Text)-2)+'.txt',CP_UTF8);
+ reset(openfile);
+ readln(openfile);
+ n:=0;
+ while not eof(openfile) do
+begin
+ readln(openfile,ffile[n]);
+ n:=n+1;
+end;
+for i := 0 to stringgrid1.Rowcount do
+for ii := 0 to n-1 do
+if ffile[ii]=stringgrid1.cells[0,i] then
+str[2,l[i]]:=ffile[ii+1];
+end;
+///////////////////////////////////////
+//////////////////////////////////////////////////////////
+ if ComboBox1.Text='=CORE=' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+
+ '\'+form1.Caption+'\=CORE=.txt',CP_UTF8);
+ if copy(ComboBox1.Text,1,2)='w|' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+'\'+form1.Caption+
+ '\weather\'+copy(ComboBox1.Text,3,length(ComboBox1.Text)-2)+'.txt',CP_UTF8);
+ if copy(ComboBox1.Text,1,2)='p|' then
+ assignfile(openfile,ExtractFilePath(Application.ExeName)+'\'+form1.Caption+
+ '\plugins\'+copy(ComboBox1.Text,3,length(ComboBox1.Text)-2)+'.txt',CP_UTF8);
+ reset(openfile);
+ readln(openfile);
+ n:=0;
+ while not eof(openfile) do
+begin
+ readln(openfile,ffile[n]);
+ n:=n+1;
+end;
+for i := 0 to stringgrid1.Rowcount do
+for ii := 0 to n-1 do
+if ffile[ii]=stringgrid1.cells[0,i] then
+str[1,l[i]]:=ffile[ii+1];
+////////////////////////////////////////////////////////////////
+
+
+stringgrid1.Rowcount:=stringgrid1.Rowcount-1;
+label1.Caption:='Strings:'+inttostr(stringgrid1.Rowcount);
+
+ii:=0;
+viewline;
+end;
+
+procedure TForm1.Draw(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
+ State: TGridDrawState);
+Var
+ StringGrid: TStringGrid;
+ Can: TCanvas;
+begin
+ StringGrid := Sender as TStringGrid;
+ Can := StringGrid.Canvas; Can.Font := StringGrid.Font;
+ if (ARow >= StringGrid.FixedRows) and (ACol >= StringGrid.FixedCols)
+ then Can.Brush.Color := StringGrid.Color
+ else Can.Brush.Color := StringGrid.FixedColor;
+ if str[1,l[ARow]]='' then Can.Brush.Color:=clRed;
+ if ns[arow]=true then Can.Brush.Color:=clGreen;
+ Can.FillRect(Rect);
+ Can.TextOut(Rect.Left+2,Rect.Top+2, StringGrid.Cells[ACol, ARow]);
+end;
+
+procedure TForm1.RadioGroup1Click(Sender: TObject);
+var m,im:integer;
+sse:string;
+begin
memo1.Lines.Clear;
-memo2.Lines.Clear;
- if copy(listbox1.Items[iindex],1,2)='=C' then
- stmp:='=CORE=' else
- if copy(listbox1.Items[iindex],1,2)='p|' then
- stmp:='\plugins\'+copy(listbox1.Items[iindex],3,
- length(listbox1.Items[iindex])-2) else
- if copy(listbox1.Items[iindex],1,2)='w|' then
- stmp:='\weather\'+copy(listbox1.Items[iindex],3,
- length(listbox1.Items[iindex])-2);
-assignfile(openfile,ExtractFilePath(Application.ExeName)
- +'\'+lang+'\'+stmp+'.txt',CP_UTF8);
-rewrite(openfile);
-writeLn(openfile,se[iindex,0]);
- for ii := 1 to ilines[iindex] do
- begin
- if copy(se[iindex,ii],1,1)=';' then writeln(openfile,se[iindex,ii]);
- if (copy(se[iindex,ii],1,1)='[') and (st[iindex,ii]<>'')
+ m:=1;
+ if RadioGroup1.itemindex=0
then
- begin
- writeln(openfile,se[iindex,ii]);
- writeln(openfile,st[iindex,ii]);
- end;
- end;
-closefile(openfile);
-//
- parsing;
+ sse:=copy(str[0,l[stringgrid1.row]],2, length(str[0,l[stringgrid1.row]])-2)
+ else
+ sse:=str[2,l[stringgrid1.row]];
+ for im := 1 to length(sse)-1 do
+ begin
+ if copy(sse,im,2)='\n' then
+ begin
+ memo1.Lines.Add(copy(sse,m,im-m));
+ m:=im+2;
+ end;
+ end;
+ if m=1 then memo1.Lines.Add(sse)
+ else memo1.Lines.Add(copy(sse,m,length(sse)-m+2));
end;
+
end.