Function com erro

Delphi

16/09/2009

function TForm1.Copy(Frase,Inicio,Fim:String):String;
{ função criada por Marcus Vitoratti }
var
  iAux,kAux:Integer;
begin
 Result:=´´;
 if (Pos(Fim,Frase) <> 0) and (Pos(Inicio,Frase)<>0) then
  begin
    iAux:=Pos(Inicio,Frase)+length(Inicio);
    kAux:=Pos(Fim,Frase);
    Result:=Copy(Frase,iAux,kAux-iAux);
  end;
end;


Pessoal o que há de errado com essa função? Quando eu compilo o projeto da o seguinte erro: [color=brown:3eb2b5cd60][Error] Unit1.pas(73): Incompatible types: ´String´ and ´Integer´[/color:3eb2b5cd60]

[]´s Ivonei


Ivonei

Ivonei

Curtidas 0

Respostas

Facc

Facc

16/09/2009

O erro está na conversão de string pra integer

nos parametros passou strings, e o POS (se não me engano) requer integer. Faça a conversão antes de usar.


GOSTEI 0
Pestana_

Pestana_

16/09/2009

basta mudar o nome da função que o problema resolve! a função esta correta.


GOSTEI 0
Pestana_

Pestana_

16/09/2009

verifique se é isso que você quer:

function TForm1.Copiar(Frase,Inicio,Fim:String):String; 
{ função criada por Marcus Vitoratti } 
var 
  iAux,kAux:Integer; 
begin 
 Result:=´´; 
 if (Pos(Fim,Frase) <> 0) and (Pos(Inicio,Frase)<>0) then 
  begin 
    iAux:=Pos(Inicio,Frase)+length(Inicio); 
    kAux:=Pos(Fim,Frase); 
    Result:=Copy(Frase,iAux,kAux-iAux); 
  end; 
end;



GOSTEI 0
Ivonei

Ivonei

16/09/2009

O erro está na conversão de string pra integer nos parametros passou strings, e o POS (se não me engano) requer integer. Faça a conversão antes de usar.


Valeu Facc.


GOSTEI 0
Pestana_

Pestana_

16/09/2009

blz Ivonei!

você poderia postar a solução?


GOSTEI 0
Ivonei

Ivonei

16/09/2009

Mesmo mudando o nome da função para copia, não deu certo. Então eu fiz direto, usando a função copy do delphi.

procedure TForm1.Button5Click(Sender: TObject);
var
I: Integer;
Texto       :String;
Inicio, Fim :Integer;
begin
  Texto:= Memo1.Text;
  Inicio := pos(´texoinicial´,Texto)+30;
    Fim := pos(´textofinal´,Texto);
    memo2.text:=copy(Texto,Inicio,Fim-Inicio);
end;


[]´s Ivonei


GOSTEI 0
Pestana_

Pestana_

16/09/2009

bom eu não sei como você fez, mas antes de postar eu testei aqui e funcionou!

O que importa é que você resolveu o problema e se precisar de mais alguma coisa é só postar que ajudarei na medida do possível!


boa sorte!


GOSTEI 0
POSTAR