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
public
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.