请问我要将一个任意VF数据库(DBF),导成文本文件,用Delphi 将如何编写。
要求:此库任意有多少字段,多少条记录,都能转换。能否将详细程序过程和步骤告知。

解决方案 »

  1.   

    字段处理用FieldCount得出总数,for(i=0;i<Table.fields.fieldCount;i++)
    Table.fields.Fields[i].asString取值,
    而后用stream写入openfile()打开的txt内
      

  2.   

    var
      i: Integer;
      FieldTypes: string;
      FieldNames: string;
      FieldValues: string;
    begin
      //////begin Fields DataType
        FieldTypes := '';
        cdsHHBSCOMClient.First;
        for i := 0 to cdsHHBSCOMClient.FieldCount - 1 do
        begin
          case cdsHHBSCOMClient.Fields.Fields[i].DataType  of
            ftSmallint: FieldTypes := FieldTypes + 'Number'+ Chr(9);
            ftInteger: FieldTypes := FieldTypes + 'Number'+ Chr(9);
            ftFloat: FieldTypes := FieldTypes + 'Number'+ Chr(9);
            ftCurrency: FieldTypes := FieldTypes + 'Number'+ Chr(9);
            ftDate: FieldTypes := FieldTypes + 'DateTime'+ Chr(9);
            ftTime: FieldTypes := FieldTypes + 'DateTime'+ Chr(9);
            ftDateTime: FieldTypes := FieldTypes + 'DateTime'+ Chr(9);
          else
            FieldTypes := FieldTypes + 'String'+ Chr(9);
          end;
          cdsHHBSCOMClient.Next;
        end;
        FieldTypes := FieldTypes + Chr(8);
        //////end Fields DataType
        
        //////begin Fields Name
        FieldNames := '';
        cdsHHBSCOMClient.First;
        for i := 0 to cdsHHBSCOMClient.FieldCount - 1 do
        begin
          FieldNames := FieldNames + cdsHHBSCOMClient.Fields.Fields[i].FieldName
            +Chr(9);
          cdsHHBSCOMClient.Next;
        end;
        FieldNames := FieldNames + Chr(8);
        //////end Fields Name    //////begin Fields Value
        FieldValues := '';
        cdsHHBSCOMClient.First;
        while not cdsHHBSCOMClient.Eof do
        begin
          for i := 0 to cdsHHBSCOMClient.FieldCount - 1 do
            FieldValues := FieldValues + cdsHHBSCOMClient.Fields.Fields[i].AsString
              + Chr(9);
          FieldValues := FieldValues + Chr(8);
          cdsHHBSCOMClient.Next;
        end;
        //////end Fields Value    Result := FieldTypes + FieldNames + FieldValues;
    end;
      

  3.   

    得到string,然后用TextFile写入文本文件