有个stringgrid
内容
C001 A01 A02 A03
C001 B01 B02 B03
C001 C01 C02 C03
C002 D01 D02 D03
C002 E01 E02 E03
C003 E01 E02 E03 我想点击保存的时候,根据相同第一列的保存为一个文件。
C001 A01 A02 A03
C001 B01 B02 B03
C001 C01 C02 C03
保存为一个文件
C002 D01 D02 D03
C002 E01 E02 E03
保存为一个文件
C003 E01 E02 E03
保存为一个文件
如何实现,谢谢
内容
C001 A01 A02 A03
C001 B01 B02 B03
C001 C01 C02 C03
C002 D01 D02 D03
C002 E01 E02 E03
C003 E01 E02 E03 我想点击保存的时候,根据相同第一列的保存为一个文件。
C001 A01 A02 A03
C001 B01 B02 B03
C001 C01 C02 C03
保存为一个文件
C002 D01 D02 D03
C002 E01 E02 E03
保存为一个文件
C003 E01 E02 E03
保存为一个文件
如何实现,谢谢
用一个TStringList保存文本内容
用一个临时变量,保存当前的cell里的内容
然后循环查找,遇到相同的就Add到StringList中
遇到不同的就SaveToFile一次,然后改变临时变量的值,
然后继续做上面的事。是不是有点太啰嗦了
[filecode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[filename] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_file] PRIMARY KEY CLUSTERED
(
[filecode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
建立表对应编号和文件夹
procedure TForm1.BitBtn1Click(Sender: TObject);//这个为执行
var ccode,ccname:string;
filename:string;
begin
with ADOQuery1 do
begin
if isempty then exit;
first;
while not eof do
begin
ccode:=Fieldbyname('字段1').asstring;
ccname:=fieldbyname('字段2').asstring;
filename:=checkcode(code); //得到对应的文件名称
//写入文件 ..不用我写了吧
next;
end;
end;
end;function TForm1.checkcode(code:string):string;//根据输入的文件夹编号得到文件夹编号
var mySQLs:string;
begin
with ADOQuery2 do
begin
if not active then
begin
mySQLs:='select *from filetext';
OpenSQLs(ADOQuery2,mySQLs);
end;
mySQLs:=' fielcode='+quotedstr(code);
GetOPenSQLs(ADOQuery2,mySQLs);
if isempty then
begin
result:= forcedirectories('E:\开发\fiel'+code); //没有就创建此文件夹
mySQLs:='insert into filetext(filecode,filename) values('+Quotedstr(code)+','+Quotedstr('E:\开发\fiel'+code)+')';
ExcuteSQLs(ADOQuery3,mySQLs);
end;
else result:=Filedbyname('filename').asstring;
end;
end;procedure TForm1.OpenSQLs(myado:TADOQuery;mySQLs:string); //查询语句
begin
with myado do
begin
close;
sql.Clear;
sql.Add(mySQLs);
open;
end;
end;
procedure TForm1.GetOPenSQLs(myado:TADOQuery;mySQLs:string); //原来基础上查询语句
begin
with myado do
begin
Filtered:=false;
Filter:=mySQLs;
Filtered:=true;
end;
end;
procedure TForm1.ExcuteSQLs(myado:TADOQuery;mySQLs:string); //执行SQL
begin
with myado do
begin
close;
sql.Clear;
sql.Add(mySQLs);
ExecSQL;
end;
end;