Delphi - no entiendo como realizar esto

 
Vista:

no entiendo como realizar esto

Publicado por felipe (18 intervenciones) el 19/01/2006 14:10:15
hola amigos:

no se como realizar un seguimiento de un archivo txt me refiero con seguimiento a lo siguiente,

tengo un archivo txt de la siguiente forma

nombre; apellifo; direccion ;fono

quiero leer cada linea y tomar los datos de nombre y llevarlo a una variable para luego esa variable insertarla en mi base de datos?? como logro leer el archivo y rescatar esos datos?''

se agradece la ayuda
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

RE:no entiendo como realizar esto

Publicado por Dr Juzam (821 intervenciones) el 19/01/2006 14:26:42
Puedes usar un TStringList. Luego, de cada linea, la puedes dividir dependiendo del separador que hayas usado para separar nombre de apellido y demás.

Suerte.
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:no entendi ??

Publicado por felipe (18 intervenciones) el 19/01/2006 15:34:38
disculpa las molestias pero no entendi???

lo que pasa es que ya tengo el archivo capturado desde delphi con la siguiente rutina

procedure TForm1.BitBtn1Click(Sender: TObject);

// captura archivo txt
var
Arch: TextFile;
Linea: string;
begin
AssignFile(Arch,'C:\Documents and Settings\Administrador\Mis documentos\codigo de delphi\prueba.txt');
reset(Arch);
while not eof(Arch) do
begin
Readln(Arch, Linea);
end;
CloseFile(Arch);

si lo muestro en un memo me aparece , lo que deseo ahora es poder sacar los datos que llegan y pasarlo a una variable.. eso no se como hacerlo, si me pudieras ayudar pofavor
te lo agradeceria un monton+


gracias por responder
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:no entiendo como realizar esto

Publicado por Dr Juzam (821 intervenciones) el 19/01/2006 19:40:35
Aquí hay un ejemplo, pero con TStringList. Supongo que puede hacerse también con AssignFile sin demasiados problemas. Te pongo el código. He puesto un form con un botón y 4 ListBox para representar la separación de una linea de texto en 4 palabras. El archivo de texto tiene el formato:

Pedro;Rodriguez;C/Sol;90;
María;Vázquez;C/Luna;10;
Alberto;García;C/Ancha;12;

La función Split que uso es de Nick Siderakis. Supongo que habrá otras funciones que hagan lo mismo.

Aquí va el código:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
ListBox2: TListBox;
ListBox3: TListBox;
ListBox4: TListBox;
procedure Button1Click(Sender: TObject);
function Split(input:string;schar:char;s:integer):string;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Texto: TStringList;
i: integer;
begin
Texto:=TStringList.Create;
Texto.LoadFromFile('C:/Texto.txt');
for i:=0 to Texto.Count-1 do begin
ListBox1.Items.Append(Split (Texto.Strings[i], ';', 2));
ListBox2.Items.Append(Split (Texto.Strings[i], ';', 3));
ListBox3.Items.Append(Split (Texto.Strings[i], ';', 4));
ListBox4.Items.Append(Split (Texto.Strings[i], ';', 5));
end;
Texto.Free;

end;

function TForm1.Split(input:string;schar:char;s:integer):string;
var
i,n:integer;
schop: string;
begin
n := 1;
for i := 1 to length(input) do
begin
if (input[i] = schar) then
begin
inc(n);
if n = s then
split := schop
else
schop := '';
end
else
schop := schop + input[i];
end;
end;

end.

Espero que sea lo que pedías. Suerte.
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:una ultima cosoita

Publicado por felipe (18 intervenciones) el 19/01/2006 22:11:51
hola sabes que todo funciona muy bien pero tengo un pequeño proble
lo que paasa es que me toma toda una fila y la deja en una texbox y lo que deso yo es lo siguiente,
realizar lo mismo pero solamente con lo siguente

ejemplo

rodrigo; 23/10/2006;chile;280223
juzam, 19/01/2006; españa, 456987

quiero tmoar el nombre rodrigo solo y pasarlo a una variable para luego de eso insertar esa variable en el campo nombre de mi tabla persona luego tomar el campo fecha y pasarlo a una variable para luefo esa vcariable pasarla e insertarla en mi base de datos, tomar chile y pasarlo a una variable y luego de eso psarlo a la base de datros al campo paos y asi sucesiba mente pàra ello debo ir leyendo liea a linea para poder lograr esto

y no entiendo como hacerlo la logica la tengo pero al llevarlo a codigo quedo perdido
pido mil disculpas por las molestias causadas muchas gracias por todo

disculpas por las molestias
saludos.
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:una ultima cosoita

Publicado por Dr Juzam (821 intervenciones) el 20/01/2006 00:18:35
Cuando en el ejemplo que te puse metía las cadenas en un ListBox, en su lugar puedes meterlos en una variable, que después podrás usar para introducir los datos en tu base de datos:

procedure TForm1.Button1Click(Sender: TObject);
var
Texto: TStringList;
i: integer;
begin
Texto:=TStringList.Create;
Texto.LoadFromFile('C:/Texto.txt');
for i:=0 to Texto.Count-1 do begin
Variable1:=Split (Texto.Strings[i], ';', 2);
Variable2:=StrToDate(Split (Texto.Strings[i], ';', 3)); //Suponemos que es Variable2 es TDate
Variable3:=Split (Texto.Strings[i], ';', 4));
Variable4:=Split (Texto.Strings[i], ';', 5));
//
{Aquí pones el código para meter Variable1, Variable2, Varaible3 y Variable4 en tu Base de datos. Así reutilizas las variables. Con esto se leen todas una linea, la separas en los 4 campos y los introduces en la BD, y se repite hasta que se han leido todas}
//
end;
Texto.Free;

end;

Si te queda alguna duda, aquí estamos.
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:Muchas gracias

Publicado por felipe (18 intervenciones) el 23/01/2006 15:18:41
muchas gracias me as ayudado un monton vale.... gracias..

saludos
...
5
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