我想把表中每条记录的每个字段的值写入一个文本文件中,并存入硬盘,
请问如何编代码??

解决方案 »

  1.   

    如果是用SQL SERVER的话,你可以直接用SQL SERVER的DTS功能进行数据转换,如果要用DELPHI写的话,那只要将记录一条条的写入到TXT文件就行了
      

  2.   

    这样的文件不难写,但是我觉得也没什么好!如果没有别的需要可以给用户提供备份和恢复的操作,如果一定要导出,可以选择导入到EXCEL中,我觉得比较好一些,因为EXCEL毕竟有一个标准的数据结构,有利于以后再导入!我想你导出到硬盘的目的肯定是为了保存和方便查看,或者必要时恢复回去!肯定不是为了导出来耍的!
      

  3.   

    给你一个过程:{功能:将数据集体保存为文本文件;}
    function datatotxtfile(ADataSet: TDataSet; ASCIIFile:string):boolean;
    //格式化字符串
    function addspces(astring:String;lgth:integer;is_Right:boolean=true):string;
    var tmps:string;
    i:integer;
    begin
    result:=astring;
    if length(astring)<lgth then
    begin
    for i:=0 to lgth-length(astring)-1 do
    tmps:=tmps+' ';
    end;
    if is_Right then result:=result+tmps
    else result:=tmps+result;
    end;
    var tmpList: TStringList;
    AsciiRecord: String;
    fldindex:integer;
    begin
    result:=true;
    tmpList:= TStringList.Create;
    if ADataSet=nil then exit;
    try
    ADataSet.DisableControls;
    with ADataSet do
    begin
    for fldindex := 0 to FieldCount-1 do
    begin
    if fields[fldindex].Visible then
    AsciiRecord:= AsciiRecord + addspces(Fields[fldindex].DisplayLabel,fields[fldindex].DisplayWidth+2)
    end;
    tmpList.Append(AsciiRecord);
    First;
    while not EOF do
    begin
    AsciiRecord:= '';
    for fldindex := 0 to FieldCount - 1 do
    begin
    if fields[fldindex].Visible then
      AsciiRecord:= AsciiRecord + addspces(Fields[fldindex].AsString,fields[fldindex].DisplayWidth+2)
    end;
    tmpList.Append(AsciiRecord);
    Next;
    end;
    end;
    try
    tmpList.SaveToFile(ASCIIFile) ;
    except
    result:=false;
    end;
    finally
    ADataSet.EnableControls;
    tmpList.Free;
    end;
    end;
      

  4.   

    自定义一个记录文件,然后从表中读记录写入文件!
    type 
     filerec= record
        field1
        field2
       ......
    end;
     filetypename=file of filerec;
    YouFile:FileTypeNamel;
    write(tablerec);