FUNÇÃO NÃO ESTOU CONSEGUINDO. NÃO SEI MAIS O Q. FAZER.......
04/02/2003
0
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.....
ATÉ AGORA EU SÓ CONSEGUIR TIRAR A VIRGULA COM A FUNÇÃO DELETE....
Sei que tenho que fazer uma pesquisa da direita para esquerda achar a virgula e armazena o resultado posterior(´´DAS´´) em uma variavel e envia-lo para a primeira posição da string. .....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....
ATÉ AGORA EU SÓ CONSEGUIR TIRAR A VIRGULA COM A FUNÇÃO DELETE....
Sei que tenho que fazer uma pesquisa da direita para esquerda achar a virgula e armazena o resultado posterior(´´DAS´´) em uma variavel e envia-lo para a primeira posição da string. .....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
Curtir tópico
+ 0
Responder
Posts
04/02/2003
Roa
Tente usar a função a seguir (declare-a como se fosse uma procedure):
type
.
.
.
.
function MudaPosicao(cString,cSubStr: string): string;
.
.
.
implementation
{$R *.DFM}
.
.
.
function TForm1.MudaPosicao(cString,cSubStr: string): string;
var cStr: string;
i: integer;
begin
i:=pos(cSubStr,cString);
if i=0 then exit;
cStr:=copy(cString,i+1,length(cString)-i);
delete(cString,i,length(cString)-i+1);
i:=pos(´ ´,cString)+1;
insert(trim(cStr)+´ ´,cString,i);
MudaPosicao:=cString;
end;
Exemplo de uso:
Supondo que tenho no meu Form dois edits, Edit1 e Edit2. No evento OnExit do Edit1 (ou OnEnter do Edit2) faço isto:
Edit2.text:=MudaPosicao(Edit1.text,´,´);
Se eu digitar no Edit1: ´AV AMERICA, DAS´ o resultado no Edit2 será AV DAS AMERICAS.
O primeiro parâmetro da função é a string que será alterada e o segundo parâmetro é a substring que quero localizar na string.
Se a substring não estiver na string, nada acontecerá.
Faça o teste.
Espero ter ajudado.
type
.
.
.
.
function MudaPosicao(cString,cSubStr: string): string;
.
.
.
implementation
{$R *.DFM}
.
.
.
function TForm1.MudaPosicao(cString,cSubStr: string): string;
var cStr: string;
i: integer;
begin
i:=pos(cSubStr,cString);
if i=0 then exit;
cStr:=copy(cString,i+1,length(cString)-i);
delete(cString,i,length(cString)-i+1);
i:=pos(´ ´,cString)+1;
insert(trim(cStr)+´ ´,cString,i);
MudaPosicao:=cString;
end;
Exemplo de uso:
Supondo que tenho no meu Form dois edits, Edit1 e Edit2. No evento OnExit do Edit1 (ou OnEnter do Edit2) faço isto:
Edit2.text:=MudaPosicao(Edit1.text,´,´);
Se eu digitar no Edit1: ´AV AMERICA, DAS´ o resultado no Edit2 será AV DAS AMERICAS.
O primeiro parâmetro da função é a string que será alterada e o segundo parâmetro é a substring que quero localizar na string.
Se a substring não estiver na string, nada acontecerá.
Faça o teste.
Espero ter ajudado.
Responder
Clique aqui para fazer login e interagir na Comunidade :)