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 03-12-2005
kazcote kazcote is offline
Registrado
 
Registrado: abr 2005
Posts: 4
Poder: 0
kazcote Va por buen camino
archivos binarios

Como puedo hacer para crear un archivo del tipo "typed", y poder ir agregando registros sin borrar lo anterior, es decir, de alguna manera abrirlo en modo append, pero para esta clase de archivos.

gracias...
Responder Con Cita
  #2  
Antiguo 03-12-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Bueno buscando en el viejo y querido Pascal 7 de Joyanes Aguilar tenemos
Código Delphi [-]

Var
  archi,aux: file of (mi tipo de datos)
  ....
  
  assign (archi, 'miarchivo.algo');
  aux:=archi;
  reset(archi); //debe existir
  while not eof(archi) do
    begin
      readln(archi,mitopodedatos);
      writeln(aux,mitipodedatos);
    end;
  //aux es la copia del arhivo abierto de lectura y escritura y estas al final de la linea
Responder Con Cita
  #3  
Antiguo 03-12-2005
kazcote kazcote is offline
Registrado
 
Registrado: abr 2005
Posts: 4
Poder: 0
kazcote Va por buen camino
che lo probe pero me tira un error en el writeln, pq creo que esto es para archivos de texto.
Lo que necesito es acceder al archivo, escribir en el, salir. Despues en otro momento volver al archivo y volver a escribir pero que no me sobreescriba lo anterior sino que me lo agregue.

gracias

saludos
kazcote
Responder Con Cita
  #4  
Antiguo 03-12-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Ejemplo sencillo

Te pongo un ejemplito para que lo pongas en uso.

Código Delphi [-]
type TRegistro=record
  Id:Integer;
  Nombre:String[30];
end;

...

procedure TForm1.Button1Click(Sender: TObject);
var
  F:file of TRegistro;
  Reg: TRegistro;
begin
  Randomize;
  Reg.Id:=Random(1000);
  Reg.Nombre:='Append registro';

  AssignFile(F,'c:\pruebas.dat');
  if FileExists('c:\pruebas.dat') then
  begin
    Reset(F);             // Abrir archivo
    Seek(F,FileSize(F)); // Ir a última posición
  end
  else
    ReWrite(F); // Crear archivo

  BlockWrite(F,Reg,1); //Escribir un registro
  CloseFile(F);
end;

Saludos
Responder Con Cita
  #5  
Antiguo 05-12-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Héctor, perdoname. pero si mal no recuerdo "Reset " solo los habre para lectura..
Y si Kazcote, no es WriteLN sino WRITE!!!!
Responder Con Cita
  #6  
Antiguo 05-12-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Cita:
Empezado por Enan0
Héctor, perdoname. pero si mal no recuerdo "Reset " solo los abre para lectura..
En realidad Reset no está restringido para archivos de sólo lectura, existe una variable global que se llama FileMode y esta es la que controla la forma en que trabaja Reset.

Cita:
Empezado por Ayuda de Delphi
FileMode variable
Indicates the access mode on typed and untyped files opened by the Reset procedure.

The default FileMode is 2 (Read/Write access). Assigning another value to FileMode causes all subsequent Resets to use that mode.
De acuerdo con esto, la variable FileMode es la que cambia el acceso a los archivos, y por defecto permite la lectura/escritura.

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


La franja horaria es GMT +2. Ahora son las 11:46:31.


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