Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda con StringList (https://www.clubdelphi.com/foros/showthread.php?t=57764)

Paulao 26-06-2008 18:08:47

Duda con StringList
 
Señores, tengo una dificuldad de trabajar con archivos text y Stringlist. O que pasa es:
Hago loop para llenar una Stringlist. Quando esta estas llena, yo ahora hago un Writeln para
descargar en Archivo Text. Bien, esto no es problema, o descargar, pero quando hago asi, los
datos que viene de la Stringlist, generan una linea vacia. Este es mi archivo hoy.

Cita:

10
15
20

35
40
55
6061322970006309112562515115004176005246
6500100184407040198GG T4MALHA ABERTA C/ZIPER R/20400100000009900
7000000000000000000000000000000000000000000009900
75CARTAO 99,00

801800

6061322970006309112562515115004177005247
6500100183936010189G T4MALHA LISA FINA GOLA V R/200100000004500
7000000000000000000000000000000000000000000004500
75A VISTA 45,00

801800

6061322970006309112562515115004178005248
6500100084328030037G T4JAQUETA KANVAS G.POLO C/ZI00100000010800
7000000000000000000000000000000000000000000010800
75A VISTA 108,00

801800
Mi gustaria que quedase asi:

Cita:

6061322970006309112562515115004176005246
6500100184407040198GG T4MALHA ABERTA C/ZIPER R/20400100000009900
7000000000000000000000000000000000000000000009900
75CARTAO 99,00
801800
6061322970006309112562515115004177005247
6500100183936010189G T4MALHA LISA FINA GOLA V R/200100000004500
7000000000000000000000000000000000000000000004500
75A VISTA 45,00
801800
6061322970006309112562515115004178005248
6500100084328030037G T4JAQUETA KANVAS G.POLO C/ZI00100000010800
7000000000000000000000000000000000000000000010800
75A VISTA 108,00
801800

marcoszorrilla 26-06-2008 18:31:17

Puedes poner un Edit y cargar cada línea en el edit justo antes de escribir en el fichero de Texto, así te permitirá ver lo que contiene cada línea, pues puede ser que contenga líneas vacías y de ahí te venga el error.

Un Saludo.

Caro 26-06-2008 18:31:25

Hola Paulao, seguramente algunas posiones de tu StringList se deben estar llenando con vacios, lo que puedes hacer antes de pasar lo que tienes en tu StringList es eliminar esos vacios.

Código Delphi [-]
 for i:=StringList.Count-1 downto 0 do
  if StringList[i]='' then
   StringList.Delete(i);

Saluditos

maeyanes 26-06-2008 18:35:30

Hola...

Tu problema viene desde el uso del WriteLn cuando estás escribiendo en el archivo de texto, ya que este procedimiento inserta un Salto de Linea/Retorno de Carro al final de cada línea, así que al final, siempre obtienes una línea en blanco...

Si ya estás usando el TStringList, para guardarlo en un archivo de texto solo tienes que hacer:

Código Delphi [-]
StrinList.SaveToFile('NombreDeArchivo.txt')


Saludos...

coso 26-06-2008 19:39:10

Hola,

ten en cuenta que si una cadena de las del TStringList acaba en char(#13) entonces con el writeln estaras escribiendo 2 saltos de linea.

seoane 26-06-2008 22:18:49

Entiendo que quieres guardar varios TStringList en el mismo archivo de texto así que queda descartado el uso de SaveToFile, para eso tenemos SaveToStream.

Por ejemplo:
Código Delphi [-]
var
  Stream: TFileStream;
begin
  Stream:= TFileStream.Create('C:\1.txt',fmCreate);
  try
    Lista1.SaveToStream(Stream);
    Lista2.SaveToStream(Stream);
    Lista2.SaveToStream(Stream);
      ... etc ...
  finally
    Stream.Free;
  end;
end;

... o tambien puedes usar Write en vez de Writeln :p


La franja horaria es GMT +2. Ahora son las 18:45:28.

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