SoloCodigo

Programación General => Delphi => Mensaje iniciado por: JMAlonso en Viernes 14 de Octubre de 2005, 00:44

Título: Ficheros
Publicado por: JMAlonso en Viernes 14 de Octubre de 2005, 00:44
Creo que es abusar un poco, pero si alguien tuviera un pequeño ejemplo
de como crear, leer y grabar en un fichero , estaria muy agradecido.

Buenas noches y saludos.
Título: Re: Ficheros
Publicado por: Enko en Viernes 14 de Octubre de 2005, 00:51
Que tipo de fichero: ¿de Texto, con Tipo o sin Tipo?
Título: Re: Ficheros
Publicado por: JMAlonso en Viernes 14 de Octubre de 2005, 16:57
Supongo que de texto , ya que de Tipo o sin Tipo no se muy bien lo que es.


Gracias y saludos.
Título: Re: Ficheros
Publicado por: bartolomeo en Viernes 14 de Octubre de 2005, 17:24
Ya revisaste otros hilos estoy seguro que esa pregunta la he respondido antes, no menosprecies el poder de esta opcion ("Busqueda")
Título: Re: Ficheros
Publicado por: Amilius en Viernes 14 de Octubre de 2005, 23:23
Cita de: "JMAlonso"
Supongo que de texto , ya que de Tipo o sin Tipo no se muy bien lo que es.


Gracias y saludos.
Estás más perdido que bala en año nuevo. :)
Para todo lo que tenga que ver con texto:
Fijate en la ayuda la clase de la propiedad lines del Tmemo.
Esa clase es el ancestro abstracto de la varita magica para todo lo que tengas que hacer con texto. :D

P.D. Antes que intentes instanciar una clase abstracta: Me refiero a TStringList no a TStrings
Título: Re: Ficheros
Publicado por: JMAlonso en Sábado 15 de Octubre de 2005, 18:49
lo que necesito es esto ,es decir escribir, leer etc. de un fichero, que viene en la ayuda de delphi pero tiene un error y no se como arreglarlo.


var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
  Y: Integer;
begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
    begin
      BackupName := ExtractFileName(SaveDialog1.FileName);
      BackupName := ChangeFileExt(BackupName, '.BAK');
      if not RenameFile(SaveDialog1.FileName, BackupName) then

        raise Exception.Create('Unable to create backup file.');
    end;
    FileHandle := FileCreate(SaveDialog1.FileName);
    { Write out the number of rows and columns in the grid. }
    FileWrite(FileHandle,
      StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
    FileWrite(FileHandle,
      StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
    for X := 0 to StringGrid1.ColCount - 1 do
    begin

      for Y := 0 to StringGrid1.RowCount - 1 do
      begin
        { Write out the length of each string, followed by the string itself. }
        StringLen := Length(StringGrid1.Cells[X,Y]);
        FileWrite(FileHandle, StringLen, SizeOf(StringLen));
        FileWrite(FileHandle, StringGrid1.Cells[X,Y] ,Length(StringGrid1.Cells[X,Y]));
      end;
    end;
    FileClose(FileHandle);
  end;


el error esta en la linea en negrita, queriendo escribir en el fichero lo que contiene
la celda del grid y su longitud, pero da error.


Saludos.


Saludos.
Título: Re: Ficheros
Publicado por: Amilius en Sábado 15 de Octubre de 2005, 23:14
:blink:
Eso es sencillísimo...  :D

StringLen := Length(StringGrid1.Cells[X,Y]);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle, StringGrid1.Cells[X,Y] ,StringLen);