Cita:
Empezado por johurgi
Hola a todos de nuevo,
Alguien sabe como puedo cortar cadenas de un fichero de texto. Las cadenas son de tamanyo fijo.
Código:
codigo1 apellido11 apellido12,nombre1 ciudad1 codigopostal1
codigo2 apellido21 apellido22,nombre2 ciudad2 codigopostal2
codigo3 apellido31 apellido32,nombre3 ciudad3 codigopostal3
codigo4 apellido41 apellido42,nombre4 ciudad4 codigopostal4
codigo5 apellido51 apellido52,nombre5 ciudad5 codigopostal5
...
El problema es que tengo que ir cortandolas y almacenandolas en una base de datos, y ya he probado a cargar el fichero en un richedit y me pierde datos por lo que no es muy fiable.
Gracias de antemano.
|
Hola johurgi
Mira.. yo tenia que pasar un archivo de texto que venia con columnas definidas a una base de datos... es super serncillo.. para eso utilice lo sgte componentes:
- TJvCsvDataSet -> de la Jvcl
- TDataSource -> vinculado al TJvCsvDataSet
- TDBGrid -> vinculado al TDataSource
le asignas el archivo de texto al TJvCsvDataSet y defines todos los campos y ancho de las columnas.. (ya sabes que cadenas son de tamanyo fijo)
si lo quieres hacer por codigo tengo esto para asingar el archivo
Código Delphi
[-]
DTexto.Active := False;
DTexto.FileName := Concat(Label1.Caption,'\',Archivo.Text); DTexto.Active := True;
Edit4.Text := IntToStr(DTexto.RecordCount);
donde DTexto es el TJvCsvDataSet
luego ejecuto este codigo pasa agregarlos a una Tabla (SQL Server y ADO)
Código Delphi
[-]
Var
i : Integer;
nArchivo : String;
begin
For i:=0 to DTexto.RecordCount-1 Do
Begin
Datos.AQ_Edit.Close;
Datos.AQ_Edit.Sql.Clear;
Datos.AQ_Edit.SQL.Add('Insert Into Horario (Hor_Tipo, Per_Nro, Hor_Fecha)');
Datos.AQ_Edit.SQL.Add('Values (:v01, :v02, :v03)');
Datos.AQ_Edit.Parameters[0].Value := DTexto.fieldbyname('Tipo').AsString;
Datos.AQ_Edit.Parameters[1].Value := IntToStr(StrToInt(DTexto.FieldByName('Ficha').asString));
Datos.AQ_Edit.Parameters[2].Value := DTexto.fieldbyname('cFecha').AsString; Datos.AQ_Edit.ExecSQL;
DTexto.Next;
End;
DTexto.Active := False;
RenameFile(Concat(Label1.Caption,'\',Archivo.Text),ChangeFileExt(Concat(Label1.Caption,'\',Archivo.T ext),'.ok'));
Espero que esto te sirva...
Salu2

