文件传输问题,人穷,只有11分了,全送~(11分)

  • 主题发起人 主题发起人 一只菜鸟Olala
  • 开始时间 开始时间

一只菜鸟Olala

Unregistered / Unconfirmed
GUEST, unregistred user!
我添加了一些项到listbox,每一项是从一个表list中得到的两个字段值,list每一个记录对应了硬盘上的一个文件,文件存放的路径是固定的;希望得到的结果是listbox可以通过鼠标拉框或CTRL+鼠标进行多选,然后把选中的项所对应的文件传输到指定盘符,应该怎么解决呢?
PS:有人建议我用文件流TStreamFile来解决,可惜小弟看了半天没看懂,请详细指教一下,分不多,小弟罄尽所有了,谢谢~
PPS:问题的关键是如何取出LISTBOX中每一项的关键值,它的一项中一个值是和硬盘上存放的文件名相同的,我的思路是取出这部分后用复制功能,应该能行吧......
 
呵呵:)不是TStreamFile而是TFileStream,或者可以用TMemoryStream类实例都可以实现的...
例如用:TMemoryStream.SavetoFile方法
 
Johnny兄,我用copyfile实现了需要的最基本的功能,可是在这个函数中使用变量的时候又遇到问题了......你能给个带变量的可执行的copyfile例子给我参考一下吗?
 
用CopyFileTo函数吧!
给你一个我写的例程!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdGlobal;

type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
strSourceFile,strTargetFile: String;
begin
strSourceFile := 'C:/TestA.txt'; //源文件(已存在)
strTargetFile := 'C:/TestB.txt'; //目标文件(不存在)
CopyFileTo(strSourceFile,strTargetFile);
end;

end.
 
JOHNNY兄,如下一段
begin
strSourceFile := 'C:/TestA.txt'; //源文件(已存在)
strTargetFile := 'C:/TestB.txt'; //目标文件(不存在)
CopyFileTo(strSourceFile,strTargetFile);
end;
应该等效于:copyfile('C:/TestA.txt','C:/TestB.txt',false);吧
很抱歉之前没说清楚我的需求.
一个DBGRID,已经通过连接读出了一个表中的数据并显示出来,我想实现的功能用奇怪的语言应该可以表达如下:
copyfile('d:/'+DBGrid1.DataSource.DataSet.FieldByName('Fieldname').AsString+'.txt','e:/'+DBGrid1.DataSource.DataSet.FieldByName('Fieldname').AsString+'.txt',false);
可是这条语句是错的,我应该怎么改呢?
PS:语句中使用了D:/和E:/,是因为所要转移的文件是放在固定目录D:/的,文件名与FieldByName('Fieldname').AsString一致
 
改成如下形式:
copyfile(PChar('d:/'+DBGrid1.DataSource.DataSet.FieldByName('Fieldname').AsString+'.txt'),PChar('e:/'+DBGrid1.DataSource.DataSet.FieldByName('Fieldname').AsString+'.txt'),false);
 
仍然不行呢,我把我写的代码贴给你看看吧,这段我完成的功能是把D:/MP3文件夹中文件名和DBGRID中的字段值一致的.MP3文件传输到D盘根目录,同时以"歌名(歌手名)"的格式显示到LISTBOX中,显示功能正常,程序运行不报错,可是并没有完成文件复制功能.我的代码如下:
procedure TForm1.Button4Click(Sender: TObject);
begin
with DBGrid1.DataSource.DataSet do
begin
Listbox1.Items.AddObject(FieldByName('songname').AsString+ '('+FieldByName('peoname').AsString+')', TObject(RecNo));
copyfile(PChar('d:/mp3'+FieldByName('songname').AsString+'.mp3'),PChar('d:/'+FieldByName('songname').AsString+'.mp3'),false);
end;

end;
 
我用以下代码验证了CopyFile函数功能,没有错误!所以错误应该出在你从DBGrid取的路径上!请仔细检查该部分代码(比如说是否SongName中是否存在空格或全角字符等问题)!
copyfile(PChar('c:/TestA.txt'),PChar('c:/TestB.txt'),false);
 
问题解决~郁闷,取出路径D:/mp3后边和文件名前边忘了还有一个"/",纯粹的低级错误......
JOHNNY兄,浪费了你不少时间听我墨迹,十分感谢~
 
后退
顶部