Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Compatibilidad de archivos

Q tal todos? Sigo intentando entender la parte de archivos y bueno ahora mi pregunta es esta:

Si yo por ejemplo creo dos archivos, uno de byte y otro binario, es decir de un tipo de estructura definida por mi, puedo hacer esto?

Código Delphi [-]
lista = record
               Nombre: string[30];
               Descripcion: string[255];
               end;

var
archivo1 : FILE of lista;
archivo2 : FILE of byte;
 
begin
archivo1 := archivo2;
end;

Les explico el porq de querer hacer esto, no es para manejar la informacion contenida en los archivos, sino solo para abrirlo y crearlo al archivo, es decir quiero creo una funcion q vea si los archivos existen y si no los cree, pero el problema es q tengo muchos archivos de estructuras diferentes, entonces la idea es crear una funcion q me devuelva un FILE of byte, y bueno, de ahi seria asignarle el contenido a mi archivo con el q realmente quiero trabajar.

Se entiende la idea?

Muchas Gracias por su ayuda!

{Saludos}
Responder Con Cita
  #2  
Antiguo 26-08-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Amigo b3nshi, no entiendo muy bien el asunto, el "file of" type, solo sirve para una programación sencilla, es muy importante que entiendas que todos los archivos son binarios, el 100%. Lo que hace que un archivo sea entendido como de "texto" es que su contenido son letras y que está escrito en un lenguaje, el cual despues de cada oracion tiene un "CrLf" (Enter)

Por ejemplo, un archivo de texto con una únia linea que diga "'Hola amigo b3nshi" tendría la siguiente apariencia binaria:

Código:
$48,$6F,$6C,$61,$20,$61,$6D,$69,$67,$6F,$20,$62,$33,$6E,$73,$68,$69.$0D,$0A
Un archivo de texto unicode tiene caracteres que ocupan el doble de su tamaño normal, exadecimalmente estaríamos viendo:

Código:
$48,$00,$6F,$00,$6C,$00,$61,$00,$20,$00,$61,$00,$6D,$00,$69,$00,$67,$00,$6F,$00,$20,$00,$62,$00,$33,$00,$6E,$00,$73,$00,$68,$00,$69,$00.$0D,$00,$0A,$00
Al ver un archivo con el type lista que nombrabas y un registro estaríamos viendo algo como ésto:

Código:
$11,$48,$6F,$6C,$61,$20,$61,$6D,$69,$67,$6F,$20,$62,$33,$6E,$73,$68,$69.......
$2F,$45,$73,$74,$65,$20,$73,$65,$72,$ED,$61,$20,$6C,$61,$20,$73,$65,$67,$75....
Te muestro ésto para que comprendas que al final el Sistema Operativo maneja a los archivos de una sola forma (todos binarios), y con sentencias dedicadas. Delphi reduce el nivel de abstracción con archivos de un "tipo" definido por el programador.

Al grano, Si quieres comprobar la existencia de un archivo podrías utilizar la función "FileExists", Yo en lo personal utilizo la siguiente orden:

Código Delphi [-]
 if GetFileAttributes('c:\archivo.txt') = INVALID_HANDLE_VALUE then
  MessageBox(0, 'Archivo no existe', nil, 0);

Si quieres implementar la creación de un archivo vacío al no existir el mismo te aconsejo usar la siguiente orden:

Código Delphi [-]
 CloseHandle(CreateFile('c:\archivo.txt', 0, 0, nil, OPEN_ALWAYS, 0, 0));

Finalmente y esperando no haberte confundido te dejo una linea para que veas si te es útil en tu mismo ejemplo:

Código Delphi [-]
 TFileRec(Archivo1) :=  TFileRec(Archivo2);

Saludos
Responder Con Cita
  #3  
Antiguo 27-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
A decir verdad no me confundiste para nada... es mas... muchisimas gracias por tu explicacion! Me dejaste claro todo, o por lo menos lo q queria saber, inclusive hasta me explicaste de mas! jaja muchisimas gracias en serio... muy claro y ademas me diste soluciones mejores... porq a decir verdad siempre q queria ver si un archivo existia lo hacia con un try except...

Muchisimas Gracias por tus respuesta... y si aparece alguna otra duda la estaré posteando nuevamente por aqui...

{Saludos}
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Compatibilidad firebird 1.5 con IBX Ivanzinho Firebird e Interbase 15 10-08-2005 07:26:18
Compatibilidad DB2 y Oracle Carlos SM DB2 1 22-01-2005 13:53:35
Compatibilidad del SP2 de XP con Delphi y ADO lgarcia Internet 2 05-11-2004 16:14:06
Compatibilidad Milu Firebird e Interbase 2 30-04-2004 00:13:36
Compatibilidad Delphi 4 DarkFilter Varios 1 14-11-2003 21:23:04


La franja horaria es GMT +2. Ahora son las 20:54:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi