Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aszarael

Por que isso acontece

Recommended Posts

pessoal tenho seguinte funçao,que trata uma entrada deste tipo 10/20/30/40 e as lança para um vetor.

 

if (length(texto)>0)then

begin

texto:=trim(texto);

for i:=1 to length(texto) do

begin

if ((texto='/') or (texto='\')) then

begin

conta:=conta+1;

vetor[j]:=copy(aux,1,i-1);

aux:=copy(aux,i+1,length(texto));

j:=j+1;

end;

end;

end;

 

Porem esta ocorrendo o seguinte.

vetor[1]= 10 - certo.

vetor[2]= 20/30 - Pegando errado.

vetor[3]= 40

 

alguem sabe pq ele não esta pegando e separando o vetor dois ?

 

pois deveria ficar assim

vetor[1]=10

vetor[2]=20

vetor[3]=30

vetor[4]=40

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grato,

 

Olhei direito e fiz assim e funcionou

 

for i:=1 to length(texto) do

begin

if ((texto='/') or (texto='\')) then

begin

conta:=conta+1;

vetor[j]:=aux;

j:=j+1;

aux:='';

end

else

begin

aux:=aux+texto;

end

end;

vetor[j]:=aux;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser outra forma:

 

procedure TForm1.TratamentoBarra(str: string);var	x, y: integer;	aux: string;beginy:=1;for x:=1 to Length(str) do	begin	if (not (str[x] in ['\','/'])) then		aux:=aux + str[x];	if ((str[x] in ['\','/']) or (Length(str) = x)) then		begin		vetor[y]:=StrToInt(aux);		aux:='';		Inc(y);		end;	end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.