Como descobrir o tipo de uma variável???

Delphi

28/09/2004

Preciso saber o tipo da variável antes de gravá-la no registro.
Por exemplo:
Se o valor da variável for String eu tenho que usar WriteString...

Alguém sabe como fazer isso?

Obrigado.


S

S

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

28/09/2004

Você pode fazer um for percorrendo todas as posições da String....
se só tiver letras você coloca ela como String;....


tipo:

for i:= to Length(texto) do
  if texto[i] in [´a´..´z´] then
      .....


Na verdade eu acho que você poderia jogar String pra todas as variáveis, iria ficar bem mais fácil pra você.


GOSTEI 0
S

S

28/09/2004

Eu sei que existe um outro método que vi a muito tempo mas não lembro mais....mesmo assim muito obrigado.


GOSTEI 0
Lucas Silva

Lucas Silva

28/09/2004

Eu sei que existe um outro método que vi a muito tempo mas não lembro mais....mesmo assim muito obrigado.

Realmente nunca vi este método...

Já vi para descobrir o tipo de campo do banco de dados!


GOSTEI 0
Beppe

Beppe

28/09/2004

O tipo (exato) das váriaveis normalmente é conhecido em tempo de escrita do programa. Quando quiser escrever uma variavel no registro, vc tb saberá qual será a função.

Digamos que vc tenha as variaveis UmInteiro e UmaString:
Reg.WriteInteger(..., UmInteiro, ...)
Reg.WriteString(..., UmaString, ...)



GOSTEI 0
Dedi

Dedi

28/09/2004

//580 - Retorna que tipo de variavel é
function Tform1.GetVariantType(const v: variant): string;
begin
case TVarData(v).vType of
  varEmpty: result := ´Empty´;
  varNull: result := ´Null´;
  varSmallInt: result := ´SmallInt´;
  varInteger: result := ´Integer´;
  varSingle: result := ´Single´;
  varDouble: result := ´Double´;
  varCurrency: result := ´Currency´;
  varDate: result := ´Date´;
  varOleStr: result := ´OleStr´;
  varDispatch: result := ´Dispatch´;
  varError: result := ´Error´;
  varBoolean: result := ´Boolean´;
  varVariant: result := ´Variant´;
  varUnknown: result := ´Unknown´;
  varByte: result := ´Byte´;
  varString: result := ´String´;
  varTypeMask: result := ´TypeMask´;
  varArray: result := ´Array´;
  varByRef: result := ´ByRef´;
end;
end;


credito: 800 dicas


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/09/2004

Colega,

Veja [b:0819165a64]VarType [/b:0819165a64]no Help.


GOSTEI 0
Wmcaetani

Wmcaetani

28/09/2004

:? Desculpe-me a minha ignorancia mas, - Se foi você mesmo quem fez o programa, pra que precisa saber o tipo da variave? Você se esueceu dos tipos e nomes das variaveis?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/09/2004

:? Desculpe-me a minha ignorancia mas, - Se foi você mesmo quem fez o programa, pra que precisa saber o tipo da variave? Você se esueceu dos tipos e nomes das variaveis?

Colega,

Com certeza ele está se referindo a tipos [b:44fd36694d][color=red:44fd36694d]Variants [/color:44fd36694d][/b:44fd36694d]e para isso o Delphi possui a função [b:44fd36694d]VarType[/b:44fd36694d].


GOSTEI 0
Gustavo Reis

Gustavo Reis

28/09/2004

Mas há ocasiões por exemplo, aconteceu comigo, utilizo um template para desenvolvimento web, e preciso saber o tipo de retorno, mas na documentação não explicita isto! E há outras ocasiões também necessárias
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

28/09/2004

Não precisa tratar somente se for inteiro ?
GOSTEI 0
POSTAR