Ir para conteúdo
Fórum Script Brasil
  • 0

Urgente !


sem ideia p/ nick

Pergunta

fala galera beleza?

seguinte queru fazer uma paradex aki tipo:

eu quero traduzir as frases, eu vi la no tópico do PHMELHOR eu dei uma lida mais achei esse codigo aki:

Function TForm1.quebratexto(Texto:WideString):TStringList;
Var
        aux     : TStringList;
        I,PI,PU : Cardinal;
Begin
        aux:= TStringList.Create;
        PI := 0; PU := 0;
        Try
                Try
                  Texto:= Trim(Texto);
                  For I:= 0 To Length(Texto) Do
                  Begin
                        PI:= PU;
                        If Texto[I] = ' ' Then
                        Begin
                                PU:= I;
                                aux.Add(Trim(Copy(Texto,PI,PU-PI)));
                        End;
                  End;
                  aux.Add(Trim(Copy(Texto,PI,Length(Texto)-PI+1)));
                Finally
                        Result:= Aux;
                End;
        Except
                Raise;
        End;

End;

Function TForm1.traduzir(Texto:WideString):WideString;
Var
        I : Cardinal;
        aux : TStringList;
Begin
     aux:= TStringList.Create;
     aux := quebratexto(Texto);
     Try
        Try
             table2.indexfieldnames:='portugues';
             For I:= 0 To aux.Count - 1 Do
             Begin
                Table2.FindKey([aux.Strings[i]]);
                //Memo2.Lines.Add(Table1.Fields[2].AsString);
                memo2.lines.add(table2.fieldbyname('ingles').asstring);
             End;
        Finally
                aux.Free;
        End;
     Except
        Raise;
     End;

End;

procedure TForm1.FormCreate(Sender: TObject);
begin
    table2.open;
        If RadioGroup1.ItemIndex = 0 Then
        Begin
                CO := 'ingles'; CD:= 'portugues';
        End
        Else
        Begin
                CO := 'portugues'; CD:= 'ingles';
        End;
                        //Table2.IndexName:= CO;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
        traduzir(memo1.Text);
end;

agora esse codigo aki ele quebra a frase.... quando traduz deixa as palavras uma abaixo da outra, não sakei ao certo como ele funciona voces podem explicar ...?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

esqueci o nick dele aki no forum mais pow valeu brother...

olhem so a resp.

var
  Form1: TForm1;
  CO, CD : String;
implementation

{$R *.DFM}

Function TForm1.quebratexto(Texto:WideString):TStringList;
Var
        aux     : TStringList;
        I,PI,PU : Cardinal;
Begin
        aux:= TStringList.Create;
        PI := 0; PU := 0;
        Try
                Try
                  Texto:= Trim(Texto);
                  For I:= 0 To Length(Texto) Do
                  Begin
                        PI:= PU;
                        If Texto[I] = ' ' Then
                        Begin
                                PU:= I;
                                aux.Add(Trim(Copy(Texto,PI,PU-PI)));
                        End;
                  End;
                  aux.Add(Trim(Copy(Texto,PI,Length(Texto)-PI+1)));
                Finally
                        Result:= Aux;
                End;
        Except
                Raise;
        End;

End;

Function TForm1.traduzir(Texto:WideString):WideString;
Var
        I : Cardinal;
        aux : TStringList;
	Teste : String;
Begin
     aux:= TStringList.Create;
     aux := quebratexto(Texto);
     Try
        Try
             table2.indexfieldnames:='portugues';
             For I:= 0 To aux.Count - 1 Do
             Begin
                Table2.FindKey([aux.Strings[i]]);
                //Memo2.Lines.Add(Table1.Fields[2].AsString);
                Teste := Teste + ' ' + table2.fieldbyname('ingles').asstring;
             End;
  memo2.lines.add(Teste);
        Finally
                aux.Free;
        End;
     Except
        Raise;
     End;

End;

procedure TForm1.FormCreate(Sender: TObject);
begin
    table2.open;
        If RadioGroup1.ItemIndex = 0 Then
        Begin
                CO := 'ingles'; CD:= 'portugues';
        End
        Else
        Begin
                CO := 'portugues'; CD:= 'ingles';
        End;
                        //Table2.IndexName:= CO;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
        traduzir(memo1.Text);
end;

end.

Link para o comentário
Compartilhar em outros sites

  • 0

cara eu vou explicar mais ou menos, eu andei fazendo um chat por voz, em delphi, usando Sokets ae um colega meu achou esse codigo na net mais ele não saca nada. so achou tal, me passou, eu entendi a logica o negocio. tipo:

ele pega o texto do Memo, separa em palavras tira os espaços, verifica palavra por palavra de acordo com um banco de dados paradox (2 colunas ingles e portugues) e traduz de forma bruta. entendeu ? ele não traduz expreçoes...

eu queria implementar isso no meu projeto de feira de ciencias, para ser entregue amanha, mais não deu certo ate tentei tal mais não deu certo talvez eu descole um tempo extra para fazer ae volto aki para encher o saco de voces ? eheheh beleza?

espero ter respondido ae ...

valeu ae a ajuda

brigadao fui

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...