Dúvidas básicas
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.
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
Curtidas 0
Respostas
Nebrio
17/03/2003
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+
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+
GOSTEI 0
Fernandoara
17/03/2003
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!
GOSTEI 0
Marcelo Saviski
17/03/2003
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;
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
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
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´);
GOSTEI 0