Calcular o tamanho da string depois do ponto
Galera Boa Tarde,
Peguei vários exemplos aqui no fórum mas nenhum deles consegui fazer o calculo certo.
Em meu sistema tenho um código para identificação de cada pessoa da seguinte maneira.
H 1.01 --> 2 caracteres depois do ponto
M 3.010204 --> 6 caracteres depois do ponto
JH12.0201050709 --> 10 caracteres depois do ponto
JM 3.010304 --> 6 caracteres depois do ponto
H 7.0103 --> 4 caracteres depois do ponto
Quero contar os caracteres que vem depois do . (ponto) que sempre serão números pares.
Peguei vários exemplos aqui no fórum mas nenhum deles consegui fazer o calculo certo.
Em meu sistema tenho um código para identificação de cada pessoa da seguinte maneira.
H 1.01 --> 2 caracteres depois do ponto
M 3.010204 --> 6 caracteres depois do ponto
JH12.0201050709 --> 10 caracteres depois do ponto
JM 3.010304 --> 6 caracteres depois do ponto
H 7.0103 --> 4 caracteres depois do ponto
Quero contar os caracteres que vem depois do . (ponto) que sempre serão números pares.
Nilsonalvernaz
Curtidas 0
Respostas
Luciano.lirio
28/09/2008
NilsonAlvanaz,
tenta o código abaixo.
tenta o código abaixo.
function Contar(_Str: String): Integer; begin Delete(_Str,2,Pos(´.´,_Str)); Result := Length(_Str); end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(´H 1.01 -> ´+IntToStr(Contar(´H 1.01´))+#1310+ ´M 3.010204 - > ´+IntToStr(Contar(´M 3.010204´))+1310+ ´JH12.0201050709 - >´+IntToStr(Contar(´JH12.0201050709´))+1310+ ´JM 3.010304 - >´+IntToStr(Contar(´JM 3.010304´))+1310+ ´H 7.0103 - >´+IntToStr(Contar(´H 7.0103´))); end;
GOSTEI 0
Marco Salles
28/09/2008
ou tb:
function Contar(_Str: String): Integer;
begin
result:=length(_str)-pos(´.´,_Str);
end;
function Contar(_Str: String): Integer;
begin
result:=length(_str)-pos(´.´,_Str);
end;
GOSTEI 0
Nilsonalvernaz
28/09/2008
Dr. Luciano, Valeu deu certinho, só fiz um ajuste
troquei o 2 por 1, conforme abaixo
Delete(_Str,[b:e56f0747ba][color=red:e56f0747ba]1[/color:e56f0747ba][/b:e56f0747ba],Pos(´.´,_Str));
por que com o 2 ele pegava o primeiro caracter que era o H e eu só quero o que vem depois do . (ponto)
mas ficou 100¬
Valeu...
function Contar(_Str: String): Integer; begin Delete(_Str,1,Pos(´.´,_Str)); Result := Length(_Str); end;
troquei o 2 por 1, conforme abaixo
Delete(_Str,[b:e56f0747ba][color=red:e56f0747ba]1[/color:e56f0747ba][/b:e56f0747ba],Pos(´.´,_Str));
por que com o 2 ele pegava o primeiro caracter que era o H e eu só quero o que vem depois do . (ponto)
mas ficou 100¬
Valeu...
GOSTEI 0
Nilsonalvernaz
28/09/2008
Delete(Codigo,1,Pos(´.´,Codigo)); TamCod := Length(Codigo);
TamCod := Length(Codigo)-pos(´.´,Codigo);
Os dois código tanto do Marco quanto do Luciano eu testei e deram certo valeu pessoal.
Usei o do Marcos por ser mais simples.
GOSTEI 0