![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
добрый день! помогите с программой, а то сам чет не могу сообразить...
Код:
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.Последний раз редактировалось Admin, 31.12.2011 в 12:27. |
|
#2
|
|||
|
|||
|
хотелось бы конкретней, чтобы не изучать всю помойку
|
|
#3
|
|||
|
|||
|
мемо1 я ввожу англйское предложение, в StringGrid1 он разделяет слова от пробелов и запятых
Код:
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;и записывает отдельно слово в ячейку, в следующую ячейку он записывает пробел, потом в следующую слово и т.д. и вот надо задать цикл што б он эти отдельно найденые выводил в мемо2 на русском Последний раз редактировалось Admin, 31.12.2011 в 12:27. |
|
#4
|
|||
|
|||
|
правильно понял что проблема с 1.txt?
|
|
#5
|
|||
|
|||
|
нет, проблема в том что я никак не могу сообразить как привязать этот тхт к программе(((
там вот где я отметил красным должен быть цикл который будет брать найденые слова, искать перевод их в 1.тхт и выводить уже переведенные слова в мемо2 |
|
#6
|
|||
|
|||
|
циклы ты и сам умеешь, значит проблема только в переводе
PHP код:
PHP код:
PHP код:
|
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
abab (30.12.2011)
| ||
|
#7
|
|||
|
|||
|
к сожелению мне не это надо(((
вот я чуть чуть отредактировал исходник Код:
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;
p:integer;
begin
for p:=0 to memo1.Lines.Count-1 do
begin
s:=memo1.Lines.Strings[p];
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;
а вот в этом промежутке надо обработать стринг грид 1 перевести даные каждой ячейки второй строки, соединить первые вторые строки и добавить в мемо2 переведенное на русский язык предложение
memo2.Lines.Add()
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form2.show;
end;
end.Последний раз редактировалось Admin, 31.12.2011 в 12:29. |