Delphi - lectura fichero

 
Vista:

lectura fichero

Publicado por Luis Martinez Goya (2 intervenciones) el 04/01/2008 23:06:18
Hola !
en un archivo txt tengo la siguiente lista

111111
222222
333333
111111

¿como se puede borrar los regiistros iguales utilizando TStringList?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:lectura fichero

Publicado por E.T. (1244 intervenciones) el 05/01/2008 02:03:08
Los tipos TStringList tienen un procedimiento que se llama Delete

MiLista.Delete(Indice);

Donce indice es el lugar donde se encuentra el elemento a borrar, tendrias que hacer un bucle anidado, o sea un bucle dentro de otro para buscar repeticiones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:lectura fichero

Publicado por E.T. (1244 intervenciones) el 05/01/2008 22:35:37
Que tal, es algo sencillo te pongo el codigo a continuación
En el ejemplo que te pongo tengo una form con dos memos y un botón, ademas de que hay un archivo que se llama " 1.txt " que debe de estar en el directorio donde se crea el programa y tiene los datos:

111111
222222
333333
7
111111
222222
333333
111111
7
7
111111

y me da como resultado:

111111
222222
333333
7

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Lista:TStringList;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
lista:=TStringList.Create;
Lista.LoadFromFile('1.txt');
Memo1.Lines:=Lista;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
i:=0;
j:=0;
while i<Lista.Count do begin
j:=i+1;
while j<Lista.Count do begin
if Lista[i]=Lista[j] then begin
Lista.Delete(j);
end else
inc(j);
end;
inc(i);
end;
Memo2.Lines:=Lista;
end;

end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lectura fichero

Publicado por Delfino (1216 intervenciones) el 07/01/2008 18:28:52
La clase TStringList tiene una propiedad llamada Duplicates, mira sus detalles en la ayuda seguro te sirve..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar