Ver Mensaje Individual
  #3  
Antiguo 20-03-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
hondaalberto,

Cita:
Empezado por hondaalberto
...Tengo un archivo de Texto que contiene muchas lineas y cada valor separado por este simbolo "|"...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    Edit4: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   ListBox1.Items.LoadFromFile('Data.txt');
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var
   StrList : TStringList;
   i,j,p : Integer;
   offset : Integer;
   Data : string;

begin

   StrList := TStringList.Create;

   for i := 0 to ListBox1.Count -1 do
      if ListBox1.Selected[i] then
         begin
            offset := 1;
            Data := ListBox1.Items.Strings[i]+'|';
            for j := 1 to Length(Data) do
            begin
               if  Data[j] = '|' then
               begin
                  p := PosEx('|',Data,offset);
                  StrList.Add(Copy(Data,offset,p-offset));
                  offset := p+1;
               end;
            end;
            Edit1.Text := StrList[0];
            Edit2.Text := StrList[1];
            Edit3.Text := StrList[2];
            Edit4.Text := StrList[3];
            Break;
         end;

   StrList.Free;

end;

end.
El código anterior lee un archivo TXT en el cual los datos son separados con el carácter "|" en un control TListBox y al pulsar cada item del control (Registros del archivo TXT) los campos son separados y cargados en una variable TStringList la cual almacenara todos los campos del registro para su posterior procesamiento en controles TEdit.

Para efectos del ejemplo el archivo tiene solo 4 campos por registro, los cuales son extensibles según se requiera:
Cita:
111111|Nombre1 Apellido1|Departamento Empresa 1|01/01/2013
222222|Nombre2 Apellido2|Departamento Empresa 2|02/02/2013
333333|Nombre3 Apellido3|Departamento Empresa 3|03/03/2013
El código y el archivo de prueba están disponibles en el link : http://terawiki.clubdelphi.com/Delph...ArchivoTXT.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 20-03-2013 a las 03:21:36.
Responder Con Cita