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
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con la Funcion VAL()

Publicado por E.T. (1244 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
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con la Funcion VAL()

Publicado por E.T. (1244 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
Imágen de perfil de Juan
Val: 71
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con la Funcion VAL()

Publicado por Juan (25 intervenciones) el 18/06/2019 23:28:46
Hasta ahora hice el Cheksum del archivo intel , los dos ultimos digitos son el cheksum de la cadena hexadecimal , pero tengo que automatizar el proceso , por que lo hago con una herramienta que diseñe a tal efecto y los voy introduciendo uno a uno , de aqui la historia de convertir directamente los hexadecimales a decimales e introducirlos en el conector que ya tengo echo .muchas gracias
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
Imágen de perfil de Juan
Val: 71
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con la Funcion VAL()

Publicado por Juan (25 intervenciones) el 21/06/2019 00:25:44
Encontre una funcion que convierte decimal en hexadecimal y me funciona , por fin meto los codigos en decimal y obtengo el cheksum en Hexadecimal , la funcion es otra , te la envio en el codigo para que la veas , tuviste el detalle de decirme lo que tu sabias , lo que ahora me falta el convertir hexadecimal en decimal , tienes que abrir el fichero *.txt , gracias y un un saludo de Juan
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
Imágen de perfil de Juan
Val: 71
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con la Funcion VAL()

Publicado por Juan (25 intervenciones) el 18/06/2019 23:18:48
Si parece que convierte una cadena a un valor numerico , pero no entiendo tu codigo , gracias de todos modos , lo mirare
val(Edit.Text, I , Code);
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