Dúvidas básicas

17/03/2003

0

Olá, sou iniciante no Delphi, estou fazendo um trabalho de faculdade e estou apanhando pacas, estou acostumado com o VB.

1 - Qual é (se existir) a função que me diz se o conteúdo de um string é número. Tipo, no vb seria:
sTeste = ´123´
If IsNumeric(sTeste) Then MsgBox(´Beleza é número!´)
Qual é o equivalente em Delphi?

2 - Preciso cronometrar o tempo de execução do meu código, qual seria a função indicada para tal finalidade? Que tipo de dados devo utilizar?

3 - Este é um problemão, vejam se conseguem entender:
Tenho o vetor:
CaracteresEspeciais : Array[0..5] Of String = (´(´,´)´,´[´,´]´,´{´,´}´);

Em determinado momento da execução ocorre:
sCar := ´+´; //sCar é do tipo String

Depois há uma comparação:
If sCar = CaracteresEspeciais[1] Then
Application.MessageBox(´Igual!!!´,´Teste´);

Por mais estranho que possa parecer a mensagem ´Igual´ aparece! Ou seja o Delphi está dizendo que ´+´ é igual a ´)´!!! Pois no meu vetor nem tem o ´+´!!!

Fiz um teste com uma variável auxiliar:
sAUX := CaracteresEspeciais[1];
Application.MessageBox(PChar(sAUX),´Teste de novo´);

Adivinhem qual foi a mensagem??? Reposta: + !!!!!
Como pode isso???

Se alguém puder ajudar eu agradeço muito! Qualquer das 3 perguntas.


Fernandoara

Fernandoara

Responder

Posts

17/03/2003

Nebrio

1 - faça assim
try
StrToInt(sTeste);
ShowMessage(´É Numero´);
except
begin
ShowMessage(´Não é Numero´);
Exit;
end; // except
end; // try

2 - Não entendi !

3 - Tente assim
// Deve ser declarado na sesão var
CaracteresEspeciais : Array[0..5] Of String = (´(´,´)´,´[´,´]´,´{´,´}´);

// lembre-se que (´,´) é uma string;

if not sCar = CaractereEspeciais[1] then
ShowMessage(´Diferente´) else
ShowMessage(´Igual´);

Não testei a n.º 3 mas ve se funciona


T+


Responder

17/03/2003

Fernandoara

1 - faça assim try StrToInt(sTeste); ShowMessage(´É Numero´); except begin ShowMessage(´Não é Numero´); Exit; end; // except end; // try 2 - Não entendi ! 3 - Tente assim // Deve ser declarado na sesão var CaracteresEspeciais : Array[0..5] Of String = (´(´,´)´,´[´,´]´,´{´,´}´); // lembre-se que (´,´) é uma string; if not sCar = CaractereEspeciais[1] then ShowMessage(´Diferente´) else ShowMessage(´Igual´); Não testei a n.º 3 mas ve se funciona T+


OK vou tentar! Muito obrigado!


Responder

17/03/2003

Marcelo Saviski

2 - Preciso cronometrar o tempo de execução do meu código, qual seria a função indicada para tal finalidade? Que tipo de dados devo utilizar?
declare uma variavel com o integer;

variavel := gettickcount;
//executa algum código
tempo de duração do código := gettickcount - variavel;



3 - Este é um problemão, vejam se conseguem entender:
Tenho o vetor:
CaracteresEspeciais : Array[0..5] Of String = (´(´,´)´,´[´,´]´,´{´,´}´);
não use vetores, use o Set
Caracteres especiais : set of char = [´(´,´)´,´[´,´]´,´{´,´}´];


Em determinado momento da execução ocorre:
sCar := ´+´; //sCar é do tipo String

Depois há uma comparação:
If sCar = CaracteresEspeciais[1] Then
Application.MessageBox(´Igual!!!´,´Teste´);
faça assim
if sCar in caracteresespeciais then Application.MessageBox(´Igual!!!´,´Teste´);



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar