Delphi - Ayuda con la Funcion VAL()

   
Vista:

Ayuda con la Funcion VAL()

Publicado por Alberto (3 intervenciones) el 03/05/2013 19:53:34
Hola!
tengo el siguiente codigo:

for i:=0 to 5 do begin
val('$'+midstr(s1,i*2+1,2),buf2[i],j);
end;


Tengo entendido que la funcion val reconoce un string numerico y lo convierte a numero.
Sin embargo, que pasa si el string (s1), fuera 'FF'?
Lo toma como hexadecimal,(255) o ascii(01000110,01000110) o, simplemente marcaría error?

En la parte de : ('$'); lo esta tomando como caracter, pero que sentido tiene sumarlo?
entonces si lo toma como ascii?

Lo mas obvio seria probar el codigo. El problema es que no programo en DELPHI. Intente instalarlo,pero no me deja crear nuevo proyecto, Aparece un error.Solo puedo Ver codigos, tampoco puedo ejecutarlos.

Alguna sugerencia?

Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con la Funcion VAL()

Publicado por E.T. (1108 intervenciones) el 03/05/2013 20:34:46
Marca error, solo puedes poner numeros reales:

Salido de la documentacion:

1
2
3
4
5
6
7
8
9
Delphi syntax:
procedure Val(S; var V; var Code: Integer);
Description
In Delphi code, Val converts the string value S to its numeric representation, as if it were read from a text file with Read.
S is a string-type expression; it must be a sequence of characters that form a signed real number.
V is an integer-type or real-type variable. If V is an integer-type variable, S must form a whole number.
Code is a variable of type Integer.
If the string is invalid, the index of the offending character is stored in Code; otherwise, Code is set to zero. For a null-terminated string, the error position returned in Code is one larger than the actual zero-based index of the character in error.
Val performs range checking differently depending upon the setting of the $R compiler directive and the type of the parameter V.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con la Funcion VAL()

Publicado por Alberto (3 intervenciones) el 03/05/2013 21:44:01
Ok, Tiens razon, la documentacion es clara.
Entonces que hace el codigo que puse?
Es parte de un programa que funciona. El string al que se refiere es 'FFFFFFFFFFFF' supuestamente un password escrito en un TLabelEdit. El fragmento que trato de decifrar es este:

s1:=trim(le_akey.Text );

for i:=0 to 5 do begin
val('$'+midstr(s1,i*2+1,2),buf2[i],j);
end;


Segun yo, crea un array numerico llamado buf2, pero... como lo hace a partir de el string no numerico?

Raro no?, Bueno , para mi si.

Gracias por tu ayuda!! y ojala Tambien puedas decirme algo al respecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con la Funcion VAL()

Publicado por E.T. (1108 intervenciones) el 03/05/2013 23:55:42
Solo me concentré en la funcion Val, sin tomar en cuenta lo demás, la funcion completa a mi parecer lo que hace es lo siguiente:

La cadena 'FFFFFFFFFFFF' la va separando de 2 en 2: 'FF' y al poner el signo $ antes de cada par le estas diciendo a delphi que es un valor hexadecimal, como comentas 255, luego la funcion Val intenta guardar el valor decimal dentro de buf2, en general, lo que hace es convertir '$FF' en 255 y ponerlo en buf2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con la Funcion VAL()

Publicado por Alberto (3 intervenciones) el 07/05/2013 04:21:26
Muchas gracias E.T.!!!!

Vere que puedo hacer en base a esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar