Ver Mensaje Individual
  #4  
Antiguo 19-12-2007
mcalmanovici mcalmanovici is offline
Miembro
 
Registrado: jun 2006
Posts: 78
Reputación: 18
mcalmanovici Va por buen camino
Solución

Cita:
Empezado por maeyanes Ver Mensaje
Hola...

El archivo está en formato de texto plano? Por que si es así, la solución que te da juanlaplata te puede servir, de otra forma, tendrías que usar otro método...


Saludos...
Muchas gracias por sus respuestas y su tiempo. Al final lo hice de esta manera:
Código:
function TForm1.insertarRegistrosEnTAP2_CDRs(SRuta: String; id_archivo: integer; OraConn:TADOConnection): integer;
var
  Arch: TextFile;
  rsResultCDRs:TADOQuery;
  ArchivoEntero, insertCDR, Registro, Campo1, Campo2, Campo3, Campo4, Campo5, Campo6, Campo7, Campo8, Campo9, Campo10, Campo11, Campo12, Campo13, Campo14, Campo15,
  Campo16, Campo17, Campo18, Campo19, Campo20, Campo21, Campo22, Campo23, Campo24, Campo25, Campo26, Campo27, Campo28, Campo29, Campo30,
  Campo31, Campo32: String;
  i,cnt: integer;
  Seguir: Boolean;
begin
  cnt := 0;
  Campo1 := '0';
  AssignFile(Arch,SRuta);
  Reset(Arch);
  i := 1;
  readln(Arch,ArchivoEntero);
  Seguir := True;
  while Seguir do
  begin
    Registro := Copy(ArchivoEntero,i,160);
    Campo1 := Copy(Registro,1,2);
    if (Campo1 = '90') then
      Seguir := False
    else
    begin
      if ((Campo1 = '20') or (Campo1 = '30') or (Campo1 = '40')) then
      begin
        rsResultCDRs:=TADOQuery.Create(nil);
        rsResultCDRs.Connection:=OraConn;
        Campo2 := Copy(Registro,3,6);
        if Campo2 = '' then
          Campo2 := '''';
        Campo3 := Copy(Registro,9,1);
        if Campo3 = '' then
          Campo3 := '''';
        Campo4 := Copy(Registro,10,15);
        if Campo4 = '' then
          Campo4 := '''';
        Campo5 := Copy(Registro,25,16);
        if Campo5 = '' then
          Campo5 := '''';
        Campo6 := Copy(Registro,41,1);
        if Campo6 = '' then
          Campo6 := '''';
        Campo7 := Copy(Registro,42,1);
        if Campo7 = '' then
          Campo7 := '''';
        Campo8 := Copy(Registro,43,1);
        if Campo8 = '' then
          Campo8 := '''';
        Campo9 := Copy(Registro,44,21);
        if Campo9 = '' then
          Campo9 := '''';
        Campo10 := Copy(Registro,65,1);
        if Campo10 = '' then
          Campo10 := '''';
        Campo11 := Copy(Registro,66,2);
        if Campo11 = '' then
          Campo11 := '''';
        Campo12 := Copy(Registro,68,1);
        if Campo12 = '' then
          Campo12 := '''';
        Campo13 := Copy(Registro,69,2);
        if Campo13 = '' then
          Campo13 := '''';
        Campo14 := Copy(Registro,71,1);
        if Campo14 = '' then
          Campo14 := '''';
        Campo15 := Copy(Registro,72,1);
        if Campo15 = '' then
          Campo15 := '''';
        Campo16 := Copy(Registro,73,1);
        if Campo16 = '' then
          Campo16 := '''';
        Campo17 := Copy(Registro,74,15);
        if Campo17 = '' then
          Campo17 := '''';
        Campo18 := Copy(Registro,89,15);
        if Campo18 = '' then
          Campo18 := '''';
        Campo19 := Copy(Registro,104,5);
        if Campo19 = '' then
          Campo19 := '''';
        Campo20 := Copy(Registro,109,5);
        if Campo20 = '' then
          Campo20 := '''';
        Campo21 := Copy(Registro,114,1);
        if Campo21 = '' then
          Campo21 := '''';
        Campo22 := Copy(Registro,115,6);
        if Campo22 = '' then
          Campo22 := '''';
        Campo23 := Copy(Registro,121,6);
        if Campo23 = '' then
          Campo23 := '''';
        Campo24 := Copy(Registro,127,1);
        if Campo24 = '' then
          Campo24 := '''';
        Campo25 := Copy(Registro,128,6);
        if Campo25 = '' then
          Campo25 := '''';
        Campo26 := Copy(Registro,134,6);
        if Campo26 = '' then
          Campo26 := '''';
        Campo27 := Copy(Registro,140,9);
        if Campo27 = '' then
          Campo27 := '''';
        Campo28 := Copy(Registro,149,1);
        if Campo28 = '' then
          Campo28 := '''';
        Campo29 := Copy(Registro,150,1);
        if Campo29 = '' then
          Campo29 := '''';
        Campo30 := Copy(Registro,151,1);
        if Campo30 = '' then
          Campo30 := '''';
        Campo31 := Copy(Registro,152,6);
        if Campo31 = '' then
          Campo31 := '''';
        Campo32 := Copy(Registro,158,13);
        if Campo32 = '' then
          Campo32 := '''';
        cnt := cnt + 1;
        lblestado.Caption:='Estado: Insertando registro detalle ' + intToStr(cnt) + ' en TAP2_CDRS';
        lblestado.Refresh;
        insertCDR := 'insert into TAP2_CDRS values(seq_tap2_cdrs.nextval,'+intToStr(id_archivo)+',sysdate,'''','+Campo1+','''+Campo2+''','''+Campo3+''','''+Campo4+''','''+Campo5+''','''+Campo6+''','''+Campo7+''','''+Campo8+''','''+Campo9+''','''+Campo10+''','''+Campo11+''','''+Campo12+''','''+Campo13+''','''+Campo14+''','''+Campo15+''','''+Campo16+''','''+Campo17+''','''+Campo18+''','+Campo19+','+Campo20+','+Campo21+','''+Campo22+''','''+Campo23+''','''+Campo24+''','+Campo25+','+Campo26+','+Campo27+','''+Campo28+''','+Campo29+','''+Campo30+''','''+Campo31+''','''+Campo32+''')';
        rsResultCDRs.SQL.Add(insertCDR);
        rsResultCDRs.ExecSQL;
        rsResultCDRs.Close;
        rsResultCDRs.Destroy;
      end;
    end;
    i := i + 160;
  end;
  CloseFile(Arch);
  Result := cnt;
end;
Saludos
Responder Con Cita