FUNÇÃO AJUDA 2.....

Delphi

03/02/2003

Preciso de uma função que execute o exemplo abaixo e não estou conseguindo desenvolver utilizando os comandos Pos(), Copy(), Delete(), Insert() sou iniciante.....

Sei que tenho que fazer uma pesquisa da direita para esquerda achar a virgula e armazena o resultado em uma variavel......so que não estou conseguindo...... ajudem-me por favor.....

ATUAL: AV AMÉRICAS, DAS

PARA: AV DAS AMÉRICAS

Preciso retirar a virgula e trocar o ´DAS´ de posicao......

Alguém teria uma função para isto.........

A base que eu estou utilizando é a dos correios que esta totalmente padronizada....


Anonymous

Anonymous

Curtidas 0

Respostas

Skaarj

Skaarj

03/02/2003

Na veia guri.. Tnho como fazer isso [localizar determinado caracter], eu fiz a algum tempo [MTO tmpo, tá em PASCAL], nesse exemplo ele procura pela letra ´A´, é só mudar o parametro para, virgula:

Program Letra_A;
Uses crt;
var
inicio:integer;
fim:integer;
frase:string;
function letra(nome:string):integer;
begin
inicio:=0;
fim:=0;
for inicio:=1 to length(nome) do
begin
if (nome[inicio]=´a´) or (nome[inicio]=´A´) then
begin
fim:=fim+1;
end;
end;
letra:=fim;
end;
function contra (nome_aux:string):string;
var
pos:integer;
result:string;
begin
result:=´´;
for pos:=length(nome_aux) downto 1 do
begin
result:=result+nome_aux[pos];
contra:=result;
end;
end;
BEGIN
clrscr;
textbackground (12);
textattr:= green;
HighVideo;
write (´Digite a frase desejada: ´);
readln(frase);
textcolor (blink);
Writeln (´O nome digitado tem : ´,letra(frase),´ letras A ´);
writeln (´O nome que vocˆ digitou ao contr rio : ´, contra(frase));
writeln (´O n&mero digitado tem ´,length(frase),´ letras´);
readkey;
exit;
END.


GOSTEI 0
Anonymous

Anonymous

03/02/2003

´SKAARJ´ não funcionou cara ..... valeu pela ajuda..... a ultima função ela inverte todas a sentença inteira......


GOSTEI 0
Skaarj

Skaarj

03/02/2003

Vou mexer aqi logo t passo o correto..


GOSTEI 0
Skaarj

Skaarj

03/02/2003

Tá aqi o codigo.. Usei 2 edit´s e 1 button..
Ela vai contar quantas virgulas tem.. É só mudar d qndo achar ao inves d contar, substituir por espaço vazio..

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
inicio:integer;
fim:integer;

implementation

{$R *.DFM}
function letra(nome:string):integer;
begin
inicio:=0;
fim:=0;
for inicio:=1 to length(nome) do
begin
if (nome[inicio]=´,´)then
begin
fim:=fim+1;
end;
end;
letra:=fim;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.text:=IntToStr(letra(edit1.text));

end;

end.


GOSTEI 0
Anonymous

Anonymous

03/02/2003

SKAARJ ela na serve para o meu aplicativo......mais muito obrigado por tentar me ajudar....... valeu mesmo.........


GOSTEI 0
Skaarj

Skaarj

03/02/2003

Filho, cnegui!! Toma ae a funçao q substitui a virgula por espaço livre:

function BuscaTroca(Text,Busca,Troca : string) : string;
{ Substitui um caractere dentro da string}
var n : integer;
begin
for n := 1 to length(Text) do
begin
if Copy(Text,n,1) = Busca then
begin
Delete(Text,n,1);
Insert(Troca,Text,n);
end;
end;
Result := Text;
edit1.clear;
edit1:=result;
end;


GOSTEI 0
POSTAR