Fórum sets de chars vs string #186337
05/10/2003
0
Prezados senhores,
Estou com um probleminha: Fiz uma função IsNumeric que analisa cada caractere de uma string para ver se só há nºs.
Acontece que eu declaro um set:
[b:ac6a01788c]var
numeros : set of ´0´.. ´9´; [i:ac6a01788c]//creio q é isso[/b:ac6a01788c][/i:ac6a01788c]
e no código:
[b:ac6a01788c]for i := 0 to (Length(Valor) - 1) do
begin
if not(copy(Valor,i,1) in numeros) then [i:ac6a01788c]//defeito aqui[/i:ac6a01788c]
begin
result := false; //o resultado é falso
exit; //sai da sub
end;
end;[/b:ac6a01788c]
Mas no comando [b:ac6a01788c]if[/b:ac6a01788c] o Delphi diz que o tipo Char (o set é de chars) e o tipo string (retornado pela função copy) são incompatíveis.
Como resolvo isso?
Grato.
Estou com um probleminha: Fiz uma função IsNumeric que analisa cada caractere de uma string para ver se só há nºs.
Acontece que eu declaro um set:
[b:ac6a01788c]var
numeros : set of ´0´.. ´9´; [i:ac6a01788c]//creio q é isso[/b:ac6a01788c][/i:ac6a01788c]
e no código:
[b:ac6a01788c]for i := 0 to (Length(Valor) - 1) do
begin
if not(copy(Valor,i,1) in numeros) then [i:ac6a01788c]//defeito aqui[/i:ac6a01788c]
begin
result := false; //o resultado é falso
exit; //sai da sub
end;
end;[/b:ac6a01788c]
Mas no comando [b:ac6a01788c]if[/b:ac6a01788c] o Delphi diz que o tipo Char (o set é de chars) e o tipo string (retornado pela função copy) são incompatíveis.
Como resolvo isso?
Grato.
Mathac_admin
Curtir tópico
+ 0
Responder
Posts
06/10/2003
Beppe
O que o Emerson respondeu está correto, mas para explicar melhor, para extrair um caractere você indexa, como em minha_string[posicao], a expressão então é do tipo caractere. A função Copy cria uma nova string, não sendo eficiente neste caso.
Ataliba.
Ataliba.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)