FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Que hago mal? Por favor
que tal gente, tengo una duda y voy a intentar hacerla lo mas entendible y corta posible:
Si tengo el siguiente codigo Delphi se va a encargar que el numero "Variable" que se va a leer va a estar entre -2147483648 y 2147483647 (que es el rango del integer), yo lo que necesito es acotar esos valores y hacer que el numero que se lea sea este entre -x y x, yo lo que pense es un subrango como por ejemplo: Pero no funciona, lee un numero cualquiera como si estuviera leyendo un integer.. que de hecho es un integer pero acotado... si alguien me ayuda le debo 1000.. un abrazo a todos |
#2
|
||||
|
||||
Bueno amigo,
Pero que esperas que pase si el numero no esta en el rango?, que lo omita?, que muestre un mensaje de error? En tu caso veo que tienes un archivo con un solo dato... si el dato no es correcto... explotaría el programa? no controlas el error de lectura... Por que no haces la facil?
Bueno, la verdad no se como te este funcionando la aplicacion, pero al hacer esta prueba:
sale un error de compilacion que dice que el numero esta fuera de rango... Un salduo, |
#3
|
|||
|
|||
claro, no, como me lo imagine, no se entendio... cuando delphi lee un numero con el read lee a un integer y delphi lee de tal manera que pueda leer todo el archivo siempre leyendo en una variable con un rango definido.. yo puedo hacer esto:
y ahi voy a leer todo el archivo como un integer donde cada integer va a estar en un rango -x <= variable < x (si reemplazas x por 2147483648, efectivamente es el rango de los integers y variable va a estar entre esos dos numeros).. como tambien puedo hacer lo siguiente: y voy a hacer lo mismo que el codigo anterior, solo que esta vez voy a leer el archivo como un int64 y por lo tanto cada variable va a ser de otro rango.. tmb puedo hacer lo mismo con la variable de tipo byte(0..255), word(0..65535), smallint, shortint, longword asi como tambien string y char... porque no? pero yo lo que quiero es que lo lea de cierta forma que se adapte a otro rango.. la cosa es como declaro ese rango? Última edición por kdemia fecha: 08-04-2011 a las 07:09:08. |
#4
|
||||
|
||||
disculpa la pregunta
pero para que utilizarias el rango?
__________________
Dulce Regalo que Satanas manda para mi..... |
#5
|
||||
|
||||
hola kdemia,
¿Te esta saliendo algún error al leer?, ¿estas verificando el dato que esta cargando?, no tengo un Delphi a la mano para hacer el ejercio, asi que veo que el problema puede estar en la estrutura del archivo y la forma como lo lees, pues como te dije, la declaración que haces está bien, y el compilador "brinca" si ingresas un numero fuera de rango.... me explico: 1) cuando haces read(archivo, variable), Delphi lee un dato sin saltar de linea... asi que si tu archivo tiene una estrutura como: 1234545676575487847568967806879'089809780'9780 y le dices lea un entero... el compilador puede estar tomando el dato que considere que aplica... como 123... la siguiente lectura, será 45, y la siguiente 56... Cuando lees el numero, estas controlando de alguna manera lo que esta cargando la variable??? intenta por ejemplo:
y nos cuentas que pasa... Ahora, vuelvo y te repito la pregunta...¿qué esperas que pase si el dato no está en el rango?, por que el fragmento de codigo que nos muestras ocasionará un error que aborte el procedimeinto .... Deberías darnos mas luces sobre lo que quieres hacer y como lo estas haciendo pues veo que no nos entregas toda la información... Intenta hacerlo del modo facil, antes de encerrarte en está unica solucion que quieres...
Un salduo, |
#6
|
|||
|
|||
les cuento y les respondo a los dos citando un ejemplo...yo si quiero representar un archivo cualquiera sea como codigo hexa.. lo que deberia hacer es leer el archivo como byte asi el rango estaria entre 0 y 255 y lo puedo representar como 0 o como FF con la funcion IntToHex se entiende? yo lo que quiero q en vez de q este entre 0 y 255, este entre 0 y 99, y lo que no quiero es perder ningun dato.. asi se puede hacer a la inversa es decir ir escribiendo el archivo con los datos que lei, y este siga siendo el mismo archivo..
|
#7
|
|||
|
|||
ecfisa me dijo esto.. quiza entiendan como el lo explica.
Cita:
|
#8
|
||||
|
||||
no veo el post colocado... pero la pregunta es... pretende definir "eso" leyendo informacion del archivo? seria bueno saber que contiene el archivo para tener una mejor idea
__________________
Dulce Regalo que Satanas manda para mi..... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como lo hago¿? ayuda por favor!!! | cacopelao | Internet | 1 | 06-08-2008 08:44:18 |
Que hago mal??? | ZayDun | Varios | 3 | 06-06-2007 14:53:28 |
que hago mal? | jvalles | Gráficos | 2 | 19-07-2005 14:45:06 |
Como las hago? | jam888 | Firebird e Interbase | 7 | 06-05-2005 22:45:41 |
|