Retirar caracteres de uma frase

Delphi

01/10/2009

Olá pessoal estou com um problema estou precisando retirar alguns caracteres de uma frase.
Exemplo: um endereço retirar o numero da rua

RUA IGUATEMI S.CARLOS 678

retirar o 678 e ficar assim

RUA IGUATEMI S.CARLOS

Muito obrigado.


Jmarcelo_8

Jmarcelo_8

Curtidas 0

Respostas

Afarias

Afarias

01/10/2009

Primeiro, é preciso definir um padrão para se identificar o q se deseja excluir


T+


GOSTEI 0
Jmarcelo_8

Jmarcelo_8

01/10/2009

O que eu quero excluir eu já consigo achar dentro da frase, só esta faltando elimirar o palavra achada.


GOSTEI 0
Afarias

Afarias

01/10/2009

|O que eu quero excluir eu já consigo achar dentro da frase, só esta faltando
|elimirar o palavra achada.

Bom, q vc sabe eu imaginei.Mas se quer ajuda deve contar o q vc sabe pois fica difícil ajudar sem ter informação nenhuma.

Meu objetivo era q vc nos contasse COMO vc consegue achar, pois como vc vai eliminar depende disso. Bom... Ex: se vc sabe definir a POSIÇÃO onde começa e termina o texto q quer excluir, use o procedimento DELETE:

Delete(Texto, PosicaoInicial, NumeroPosicoes);


T+


GOSTEI 0
Jose Almeida

Jose Almeida

01/10/2009

function retificar(frase:String):String;
var
x:integer;
y:char;
begin
Result:=´´;
for x:=1 to length(Frase)do
begin
y := frase[x];
if not((Ord(y) > 47) and (Ord(y)< 58)) then
Result := Result + frase[x];
end
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := ´RUA IGUATEMI S.CARLOS 678´;
ShowMessage(retificar(Edit1.Text));
end;


GOSTEI 0
Afarias

Afarias

01/10/2009

Funciona... desde q ruas como estas:

rua 1º de março
rua 7 de setembro
rua 22 -- em algumas localidades as ruas tem números e não nomes
rua 12 de outubro
...


sejam escritas sempre por extenso, certo?


T+


GOSTEI 0
Jose Almeida

Jose Almeida

01/10/2009

Isso deve resolver o novo problema:

function retificar(frase:String):String;
var
x,z:integer;
y:char;
num:boolean;
begin
num := true;
Result:=´´;
for x := 1 to length(frase)do
begin
z := length(frase) - x + 1;
y := frase[z];
if num then
if not((Ord(y) > 47) and (Ord(y)< 58)) then num := false;
if not num then Result := y + Result;
end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := ´RUA 7 DE SETEMBRO 678´;
ShowMessage(retificar(Edit1.Text));
end;


GOSTEI 0
POSTAR