Ver Mensaje Individual
  #3  
Antiguo 02-04-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Neg90,

Cita:
Empezado por Neg90
...tengo un archivo de tipo record y tengo que convertirlo a un archivo de texto...
Revisa este código:
Código Delphi [-]
...

type
  TData = Record
     C1 : Integer;
     C2 : String[20];
     C3 : Double;
     CRLF : String[4];
  end;

...

procedure TForm1.Button13Click(Sender: TObject);
var
   Data : TData;
   i : Integer;
   F1 : File of TData;
   F2 : TextFile;
   TextData : String;

begin

   // Crea un archivo Tipo Records
   try

      AssignFile(F1,'C:\FileRecord.dat');
      Rewrite(F1);

      for i := 1 to 10 do
      begin
         Data.C1 := i;
         Data.C2 := 'String-' + IntToStr(i);
         Data.C3 := StrToFloat(IntToStr(i) + '.99');
         Data.CRLF := #13 + #10;
         Write(F1, Data);
      end;

   finally

      CloseFile(F1);

   end;

   // Crea un archivo Tipo TextFile CSV en función del archivo Tipo Records
   try

      AssignFile(F1,'C:\FileRecord.dat');
      AssignFile(F2,'C:\TextFile.txt');
      Reset(F1);
      Rewrite(F2);

      while not Eof(F1) do
      begin
        FillChar(Data, SizeOf(Data),0);
        TextData := '';
        Read(F1,Data);
        TextData := TextData + Format('%d',[Data.C1]) + ',';
        TextData := TextData + Data.C2 + ',';
        TextData := TextData + Format('%n',[Data.C3]);
        TextData := TextData + Data.CRLF;
        Write(F2,TextData);
      end;

    finally

       CloseFile(F1);
       CloseFile(F2);

    end;

end;

...
El código anterior crea un archivo Tipo Records y luego lo convierte en Tipo Textfile CSV.

Nota: Si se requiere adicionar los registros del archivo de Tipo Records a un archivo existente de Tipo TextFile, sustituir Rewrite(F2) por Append(F2).

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 02-04-2013 a las 19:06:06.
Responder Con Cita