Ver Mensaje Individual
  #4  
Antiguo 18-07-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Aquí te pego unas líneas que utilizo para leer líneas de un fichero que te pueden servir como base de ejemplo, no tengo tiempo para más.
Código Delphi [-]
Procedure Leer_Cabecera_Pedidos();
var
  F: TextFile;
  S: string;
  cNPedido:String;
  nContPedido:Integer;
begin
nContPedido:=0;
cNomFicCNotas:='Noc010'+Vendedor + cTipFileim;
cNomFicCNotas:=cCaminoTerminales + cNomFicCNotas;
Ultimo_Pedido();

  Try
  Serie:=FormatFloat('0000000',StrToInt(DmTerm.QrUltCons.Fields[0].AsString)+1);
  Except
  Serie:='0000001';
  ShowMessage('Atención:No había pedidos se registra con el número 1.');
  end;
  AssignFile(F, cNomFicCNotas);
  Reset(F);

//Grabar la serie que es la cabecera del pedido.
DmTerm.PedCliSerie.Append;
DmTerm.PedCliSerieSerie.Value:=Serie;

DmTerm.PedCliSerieFecha.Value:=FileDateToDateTime(FileAge(cNomFicCNotas));
DmTerm.PedCliSerieHora.Value :=FileDateToDateTime(FileAge(cNomFicCNotas));

DmTerm.PedCliSerieFechadescarga.Value:=Date;
DmTerm.PedCliSerieHoradescarga.Value:=Time;

DmTerm.PedCliSerieVendedor.Value:=Vendedor;
DmTerm.PedCliSerieObservaciones.Value:='Gestionado por: '+cNombreUsuario;
DmTerm.PedCliSerie.Post;

  While not Eof(F) Do
  begin
  Readln(F, S);  { Read the first line out of the file }
  cNPedido  :=Copy(S,11,10);

    if Not DmTerm.BusPedcli.FindKey([cNPedido]) then
    begin
    nContPedido:=nContPedido + 1;
    DmTerm.Pedcli.Append;
    DmTerm.PedcliNPedido.Value  :=Copy(S,11,10);
    PedidoBis:=Copy(S,11,10);
    DmTerm.PedcliCodClient.Value:=Trim(Copy(S,0,10));

    if DmTerm.QrClient.Locate('Codigo',Trim(Copy(S,0,10)),[])then
    DmTerm.PedcliNombre.Value   :=DmTerm.QrClientBuscar.Value
    else
    DmTerm.PedcliNombre.Value:='No encontrado';

    DmTerm.PedcliFecha.Value    :=Invierte_Fecha(Copy(S,261,10));
    DmTerm.PedcliHora.Value     :=StrToTime(Copy(S,272,5));
    DmTerm.PedcliAgnus.Value    :=Copy(s,263,2);
    DmTerm.PedcliBase1.Value    :=StrToFloat(Trim(StringReplace(Copy(S,114,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliBase2.Value    :=StrToFloat(Trim(StringReplace(Copy(S,122,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliBase3.Value    :=StrToFloat(Trim(StringReplace(Copy(S,130,8),'.',',',[rfReplaceAll])));

    DmTerm.PedcliIva1.Value     :=StrToFloat(Trim(StringReplace(Copy(S,154,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliIva2.Value     :=StrToFloat(Trim(StringReplace(Copy(S,162,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliIva3.Value     :=StrToFloat(Trim(StringReplace(Copy(S,170,8),'.',',',[rfReplaceAll])));

    DmTerm.PedcliRec1.Value          :=StrToFloat(Trim(StringReplace(Copy(S,194,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliRec2.Value          :=StrToFloat(Trim(StringReplace(Copy(S,202,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliRec3.Value          :=StrToFloat(Trim(StringReplace(Copy(S,210,8),'.',',',[rfReplaceAll])));

    DmTerm.PedcliImporte.Value       :=StrToFloat(Trim(StringReplace(Copy(S,243,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliObservaciones.Value :=Copy(S,293,60);
    DmTerm.PedcliProcesado.Value     :=False;
    DmTerm.Pedcli.Post;
      Try
      Leer_Lineas_Pedidos();
      Except
      ShowMessage('Error al leer líneas del pedido');
      end;

      Try
      Leer_Incidencias();
      Except
      //ShowMessage('Error al leer Incidencias');
      end;

    end
    else
    begin
    ShowMessage('El pedido del Cliente '+Trim(Copy(S,0,10))+' ya existe.'+
    Chr(10)+'y no se incorporará');
    end;

  end;
  CloseFile(F);

  if nContPedido = 0 then
  begin
  DmTerm.PedCliSerie.Edit;
  DmTerm.PedCliSerie.Delete;
  ShowMessage('Error:No había ningún pedido.');
  lError:=True;
  end;
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita