Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Separar espacios de un txt en varios memo (https://www.clubdelphi.com/foros/showthread.php?t=74526)

rxaxx9 24-06-2011 00:08:06

Separar espacios de un txt en varios memo
 
Hola. Amigos tengo un pequeño dolor de cabeza que no le podido lograr en Delphi.

el problema es que tengo un .txt con lo siguiente.

Cita:

MEMO1 MEMO2 MEMO3
sh99 SH11 SH12
sx88 SH15 SH45
cd88 SH16 SH13
lo que quiero hacer en delphi es que tengo 3 memos y en esos 3 memos colocar el valor que le corresponde. como lo dice en txt. algo como separar los espacios en celdas pero esta ves en Memos no se si me entienden.


ecfisa 24-06-2011 01:01:28

Hola.

Código Delphi [-]
procedure PasarAMemos(NomArch: string; M1,M2,M3: TMemo);
var
  F: TextFile;
  TS: TStrings;
  s: string;
begin
  AssignFile(F, NomArch);
  try
    Reset(F);
    ReadLn(F);// desactivá esta linea para que muestre MEMO1,MEMO2 y MEMO3
    try
      TS:= TStringList.Create;
      TS.Delimiter:= ' ';
      while not Eof(F) do
      begin
        ReadLn(F,s);
        TS.DelimitedText:= s;
        M1.Lines.Add(TS[0]);
        M2.Lines.Add(TS[1]);
        M3.Lines.Add(TS[2]);
      end;
    finally
      TS.Free;
    end;
  finally
    CloseFile(F);
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
...
  Memo1.Clear;
  Memo2.Clear;
  Memo3.Clear;
  PasarAMemos('C:\TU_ARCHIVO.TXT', Memo1,Memo2,Memo3);
...

Saludos.

rxaxx9 24-06-2011 02:33:14

Cita:

Empezado por ecfisa (Mensaje 404676)
Hola.

Código Delphi [-]
procedure PasarAMemos(NomArch: string; M1,M2,M3: TMemo);
var
  F: TextFile;
  TS: TStrings;
  s: string;
begin
  AssignFile(F, NomArch);
  try
    Reset(F);
    ReadLn(F);// desactivá esta linea para que muestre MEMO1,MEMO2 y MEMO3
    try
      TS:= TStringList.Create;
      TS.Delimiter:= ' ';
      while not Eof(F) do
      begin
        ReadLn(F,s);
        TS.DelimitedText:= s;
        M1.Lines.Add(TS[0]);
        M2.Lines.Add(TS[1]);
        M3.Lines.Add(TS[2]);
      end;
    finally
      TS.Free;
    end;
  finally
    CloseFile(F);
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
...
  Memo1.Clear;
  Memo2.Clear;
  Memo3.Clear;
  PasarAMemos('C:\TU_ARCHIVO.TXT', Memo1,Memo2,Memo3);
...

Saludos.

Gracias. me funciono 100%.

les hice unas pequeñas modificaciones
Código Delphi [-]
Procedure Limitaciones(Const RUTA: string; M1,M2,M3: Tmemo);
var
Cargar: TstringList;
x: Integer;
begin
cargar := tstringlist.Create;
cargar.LoadFromFile(ruta);
cargar.Delimiter := ';';
cargar.DelimitedText := CARGAR.Text;
for x:= 0 to CARGAR.Count -1 do
Begin
TRY
m1.Lines.Add(CARGAR[X]);
CARGAR.Delete(x);
m2.Lines.Add(CARGAR[X]);
CARGAR.Delete(x);
m3.Lines.Add(CARGAR[X]);
except
end;
end;
end;

pd: esta ves no es un espacio el delimitador ahora es un ";"


La franja horaria es GMT +2. Ahora son las 10:09:50.

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