![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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. |
|
#2
|
||||
|
||||
|
disculpa la pregunta
pero para que utilizarias el rango?
__________________
Dulce Regalo que Satanas manda para mi..... |
|
#3
|
||||
|
||||
|
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, |
|
#4
|
|||
|
|||
|
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..
|
|
#5
|
||||
|
||||
|
mmmm no se
quiza mi cafe no esta muy cargado o la hierba no esta buena.. pero no te entendi ![]() ![]() ![]() quieres leer el archivo para que? transformar lo que lees en Hexa ? que contiene el archivo? Texto? datos binarios? chinitos? (como les deciamos a lo que se ve en el ejecutable) quieres leer solo una porcion del archivo? o ir leyendo en bloque?
__________________
Dulce Regalo que Satanas manda para mi..... |
|
#6
|
|||
|
|||
|
ecfisa me dijo esto.. quiza entiendan como el lo explica.
![]() Cita:
|
|
#7
|
||||
|
||||
|
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..... |
|
#8
|
|||
|
|||
|
a ver ahi si lo leen :P
Originally Posted by ecfisa Hola kdemia. Estuve leyendo tu post y creo entender perfectamente lo que buscas. Es cambiar el formato interno de los datos, creando así no sólo un nuevo tipo de variable, sino un nuevo tipo cuyos rangos sean arbitrariamente definidos por vos. Es decir un nuevo tipo no contemplado en los tipos básicos de Delphi. Tendría que investigarlo más. Hasta donde sé, diría que que no es posible... pero no puedo afirmarlo. Un saludo. el archivo es un archivo cualquiera.. contiene binarios.. |
|
#9
|
||||
|
||||
|
Ok, veo que la respuesta de ecfisa (por el medio que haya sido), confirma lo que te decía:
Cita:
debes tener en cuenta que si defines una archivo tipado, como te lo propone ecfisa (File of...) no es solo cuestion de abrir un block de notas y digitar caracteres... el archivo debe ser grabado desde un procedimeinto delphi y recuperado de la misma forma.... Un salduo, |
|
#10
|
|||
|
|||
|
ecfisa no me propone ninguna solucion, explica mas claramente mi problema y me dice que el cree que no se puede.. el medio en el que me lo dijo es mensaje privado y la parte de:
"el archivo es un archivo cualquiera.. contiene binarios.." lo puse yo contestandole a oscarac, probe tu solucion gatosoft, y funcionria solo para la lectura pero si lo quiero volver a escribir a los datos esos en un archivo no volveria a ser el mismo archivo porque perderia datos.. |
|
#11
|
||||
|
||||
|
disculpa que siga preguntando pero...
cual es la funcion de leerlo y escribirlo que haras con los binarios (0,1) o chinitos? que leas?
__________________
Dulce Regalo que Satanas manda para mi..... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|