30.12.2011, 14:59
|
Прохожий
|
|
Регистрация: 30.12.2011
Сообщения: 4
Репутация: 10
|
|
Англо-русский переводчик
добрый день! помогите с программой, а то сам чет не могу сообразить...
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
StringGrid1: TStringGrid;
Memo2: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s1,s2:tstringlist;
c:set of char = ['A'..'Z','a'..'z'];
i:integer;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
s1:=tstringlist.Create;
s1.LoadFromFile('1.txt');
s2:=tstringlist.Create;
s2.LoadFromFile('2.txt');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s,s5:string;
j:integer;
k_slov,k_per:integer;
m_slov:array[1..1000] of string;
per_slov:array[1..1000] of integer;
flag:boolean;
begin
{if radiobutton1.Checked then
begin
if s1.IndexOf(edit1.Text)<>-1 then
edit2.Text:=s2.Strings[s1.IndexOf(edit1.Text)];
end else
begin
if s2.IndexOf(edit1.Text)<>-1 then
edit2.Text:=s1.Strings[s2.IndexOf(edit1.Text)];
end; }
begin
s:=memo1.Text;
k_slov:=0;
k_per:=0;
s5:='';
if length(s)>0 then
if s[1] in c then flag := True
Else flag := false;
for j:=1 to length(s) do
begin
if s[j] in c then
begin //буква
if flag then s5:=s5+s[j]
else
begin
inc(k_slov);
m_slov[k_slov]:=s5;
s5:=s[j];
flag:=true;
end;
end
else
begin //не буква
if not flag then s5:=s5+s[j]
else
begin
inc(k_slov);
inc(k_per);
m_slov[k_slov]:=s5;
per_slov[k_per]:=k_slov;
s5:=s[j];
flag:=false;
end;
end;
end;
for i:=1 to k_slov do
begin
flag:=false;
for j:=1 to k_per do
if i=per_slov[j] then flag:=true;
if flag then stringGrid1.Cells[i-1,1]:=m_slov[i]
else stringGrid1.Cells[i-1,0]:=m_slov[i];
end;
end;
----------------------------------------------------------
begin
for i:=1 to k_slov do
{if i=per_slov then}
begin
Form1.Memo2.Lines.Add(IntToStr(k_slov);
end;
ВОТ СДЕСЬ НАДО ЗАДАТЬ ЦИКЛ ТАКОЙ ШТО Б ОН МНЕ ПЕРЕВОДИЛ РАЗДЕЛЕННЫЕ СЛОВА НА РУССКИЙ ИЗ 1.TXT
-------------------------------------------------------------
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form2.show;
end;
end.
Админ: Пользуемся тегами для оформления кода!
|