Ver Mensaje Individual
  #4  
Antiguo 17-11-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.295
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Puedes realizar un "preproceso" antes de obtener los campos para cambiar las dos tabulaciones que vengas seguidas por otro valor.
Por ejemplo, cuando encuentres #9#9 (dos tabulaciones) lo modificas por #9$$$#9.
De ésta forma tendrás en número de campos completo, pero los nulos vendrán con valor $$$; Luego es cuestión de detectarlos y añadirlos como nulos.

No se si me he explicado bien; Algo así (no lo he compilado, así que tal vez haya algun error, pero espero que la idea se entienda):

Código Delphi [-]
   var
    ArchivoCsv, Campos: TStringList;
    I, J: Integer;
    Str:String;
  begin
    ArchivoCsv := TStringList.Create;
    Campos := TStringList.Create;
    Campos.Delimiter := #9;  
    try
      ArchivoCsv.LoadFromFile(JvDirectoryEdit.EditText+'\'+Archivo);
      for I := 0 to ArchivoCsv.Count - 1 do
      begin
        // Preproceso
        Str := AnsiReplaceStr(ArchivoCsv[i], #9#9, #9+'$$$'+#9);
  
        Campos.Clear;
        Campos.DelimitedText := Str{ArchivoCsv[i]};
        if(Campos.Count > 5 ) then
        begin
          ADOTableImporta.Insert;
          //for J := 0 to ADOTableImporta.FieldCount - 1 do
          for J := 0 to Campos.Count - 1 do
          begin
            // Es un nulo?
            if (Campos[J] = '$$$') then begin
              ADOTableImporta.Fields[J].Clear;
            end
            else begin 
              ADOTableImporta.Fields[J].Value := Campos[J];
            end;
          end;
          ADOTableImporta.Post;
        end;
      end;
    finally
      ArchivoCsv.Free;
      Campos.Free;
    end;
  end;

NOTA: He intentado resaltar el texto nuevo, y no si se ve peor o mejor...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 17-11-2005 a las 09:18:21. Razón: Resaltar código nuevo
Responder Con Cita