[Lazarus-es] Como leer y escribir archivos de textos

Ismael L. Donis Garc?a ismael en citricos.co.cu
Mie Nov 18 15:24:47 CET 2009


Si es precisamente es un archivo .ini, ósea un archivo de texto que le pongo 
.ini porque lo uso para configuración general.

Muchas gracias veré como se hace con TIniFile.

Hasta ahora estaba tratando de convertir lo que tengo de VB6 para hacer 
dicho trabajo, ya había convertido 2 procedimientos, aunque todavía no los 
he probado:

function Tdtmmp.headiniformated(head: string): string;
begin
  //Formatea un head para usarse
  head := trim(head);
  if leftstr(head, 1) <> '[' then head := '[' + head;
  if rightstr(head, 1) <> ']' then head := head + ']';
  result := head;
end;

procedure Tdtmmp.inicopyfile(fileini: string; numlinereem: integer;
  valuereem: string; reemplace: boolean);
  var
    inti: integer;
    strlinea, strfiledest: string;
    nexfileini: TextFile;
    oldfileini: TextFile;
begin
  //Vacía un archivo ini al otro
  //numlinereem = Número de línea a reemplazar
  //valuereem = Valor por el que se reemplaza
  //reemplace = si es verdadero entonces se reemplaza la línea, si es falso 
entonces se inserta la línea
  inti := 0;
  AssignFile (oldfileini, fileini);
  Append (oldfileini); // abre un archivo existente
  strfiledest := fileini + '2';
  AssignFile (nexfileini, strfiledest);
  Rewrite (nexfileini); // crear uno nuevo
  while not eof(oldfileini) do
    begin
      inti := inti + 1;
      readln(oldfileini, strlinea);
      if inti = numlinereem then
        begin
          writeln(nexfileini, valuereem);
          if not reemplace then writeln(nexfileini, strlinea);
        end
      else
        writeln(nexfileini, strlinea);
    end;
  if inti < numlinereem then //significa que estaba vacío o que no existía
    writeln(nexfileini, valuereem);
  closefile(oldfileini);
  deletefile(fileini);
  rename(nexfileini, fileini);
  closefile(nexfileini);
end;

Saludos cordiales
=========
¦¦ ISMAEL ¦¦
=========
----- Mensaje original ----- 
De: "JoshyFun" <joshyfun en gmail.com>
Para: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: martes, 17 de noviembre de 2009 04:22
Asunto: Re: [Lazarus-es] Como leer y escribir archivos de textos


Hello Ismael,

Tuesday, November 17, 2009, 10:31:52 PM, you wrote:

ILDG> Estoy tratando de leer y escribir un archivo de texto con
ILDG> TFileStream pero no he podido encontrar la forma:
ILDG> La estructura sería más o menos así:

ILDG> [Datos]
ILDG> conexion=1
ILDG> seridor=192.168.0.1
ILDG> puerto=3050
ILDG> bd=D:\Datos\
[...]
ILDG> GRACIAS por la ayuda que me puedan brindar.

El archivo tiene toda la pinta de tener un formato .INI file, y para
ello te sería más cómodo usar el TIniFile en vez de TFileStream. Añade
TIniFile al "uses" y ya dispones de TIniFile.

-- 
Best regards,
 JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list