📄 fw210unit.pas
字号:
unit FW210Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, PublicUnit, jpeg, ExtCtrls, StdCtrls, ADOdb;
type
TFW210Form = class(TPublicUnit)
RadioGroup1: TRadioGroup;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
OpenDialog1: TOpenDialog;
Panel2: TPanel;
ComboBox1: TComboBox;
Label1: TLabel;
Panel3: TPanel;
Label2: TLabel;
ComboBox2: TComboBox;
SaveDialog1: TSaveDialog;
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
procedure RegulateStr(aString: string; Sepchar: string; Isfirst: boolean);
{--- aString 为取出的字符串,Sepchar为分隔符. ---}
{ Private declarations }
public
{ Public declarations }
end;
var
FW210Form: TFW210Form;
implementation
uses DMUnit;
{$R *.dfm}
procedure TFW210Form.RegulateStr(aString: string; Sepchar: string; Isfirst: boolean);
//aString 为取出的字符串,Sepchar为分隔符.
var
Num: Integer;
MyStr: string;
begin
Num := 0;
while length(Astring) <> 0 do begin
mystr := copy(astring, 1, pos(sepchar, astring) - 1); //截取子符串
delete(astring, 1, pos(sepchar, astring)); //删除子符串
if mystr = '' then mystr := '1.00'; //防止空字符
if Isfirst then begin //如果是第一条,则特殊处理。
DM.QueryTemp.fields[Num].DisplayLabel := mystr;
end else
begin
DM.QueryTemp.Fields[Num].AsString := mystr;
end;
Num := Num + 1;
end;
end;
procedure TFW210Form.FormShow(Sender: TObject);
var
SL: TStrings;
begin
inherited;
SL := TStringList.Create;
{--- 取得所有数据表的名字 ---}
DM.conn.GetTableNames(SL, False);
RadioGroup1.Caption := '选择下面的表导出';
RadioGroup1.Columns := 3;
RadioGroup1.Items.Clear;
RadioGroup1.Items := SL;
end;
procedure TFW210Form.Button2Click(Sender: TObject);
var
str: string;
filename: textfile;
n: integer;
p: string;
begin
inherited;
DM.ImportTable.SQL.text := 'Select * from ' + RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
DM.ImportTable.Open;
if Combobox2.Text = '文本文件' then
begin
if SaveDialog1.Execute then
begin
try
OpenDialog1.Filter := 'ASCII Files(*.TXT)|*.txt';
str := SaveDialog1.FileName;
assignfile(FileName, str);
if FileExists(str) then DeleteFile(SaveDialog1.FileName);
Screen.Cursor := crHourGlass;
ReWrite(filename);
p := Combobox1.Text;
str := '';
DM.ImportTable.First;
for n := 0 to DM.QueryTemp.FieldCount - 1 do
begin
str := str + DM.ImportTable.fields[n].DisplayLabel + p;
end;
writeln(filename, str);
str := '';
while not DM.ImportTable.Eof do begin
for n := 0 to DM.ImportTable.FieldCount - 1 do
begin
str := str + DM.ImportTable.fields[n].AsString + p;
end;
Writeln(FileName, str);
str := '';
DM.ImportTable.Next;
end;
Screen.Cursor := crdefault;
closefile(filename);
MessageBox(0, '成功保存文件', '提示', MB_OK + MB_ICONINFORMATION);
except
Application.MessageBox('操作在没有警告的情况下正常结束!', '完成', mb_ok + mb_iconinformation);
end;
end;
end
else if Combobox2.Text = 'XML文件' then
begin
OpenDialog1.Filter := 'XML 文件(*.xml)|*.XML';
if Opendialog1.Execute then
begin
DM.ImportTable.SaveToFile(Opendialog1.FileName + '.XML', pfXML);
MessageBox(0, '成功保存文件', '提示', MB_OK + MB_ICONINFORMATION);
end;
end;
end;
procedure TFW210Form.Button1Click(Sender: TObject);
var
filestr: Textfile;
recoStr: string;
begin
inherited;
DM.ImportTable.SQL.text := 'Select * from ' + RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
DM.ImportTable.Open;
if Combobox2.Text = '文本文件' then
begin
try
OpenDialog1.Filter := 'ASCII Files(*.TXT)|*.txt';
if OpenDialog1.Execute then
begin
Screen.Cursor := crHourGlass;
Assignfile(filestr, opendialog1.filename);
Reset(filestr);
Readln(filestr, recostr); //读出一行字符串。
RegulateStr(recostr, Combobox1.Text, true);
while not eof(filestr) do
begin
DM.ImportTable.Append;
Readln(filestr, recostr);
RegulateStr(recostr, Combobox1.Text, false); //循环取出所有子符串。
DM.ImportTable.Next;
//读下一行。
end;
end;
Screen.Cursor := crdefault;
closefile(filestr);
except
Application.MessageBox('操作在没有警告的情况下正常结束!', '完成', mb_ok + mb_iconinformation);
end;
end
else if Combobox2.Text = 'XML文件' then
begin
OpenDialog1.Filter := 'XML 文件(*.xml)|*.XML';
if Opendialog1.Execute then
begin
DM.ImportTable.LoadFromFile(Opendialog1.FileName);
MessageBox(0, '成功恢复文件', '提示', MB_OK + MB_ICONINFORMATION);
end;
end;
end;
procedure TFW210Form.ComboBox1DropDown(Sender: TObject);
begin
inherited;
{--- 定义一些常见的分隔符 ---}
Combobox1.Clear;
Combobox1.Items.Add('|');
Combobox1.Items.Add(',');
Combobox1.Items.Add('.');
Combobox1.Items.Add('/');
Combobox1.Items.Add('\');
Combobox1.Items.Add('^');
Combobox1.Items.Add(' ');
Combobox1.Items.Add(' ');
end;
procedure TFW210Form.ComboBox2DropDown(Sender: TObject);
begin
inherited;
Combobox2.Clear;
{--- 加入备选的两种文件格式 ---}
Combobox2.Items.Add('文本文件');
Combobox2.Items.Add('XML文件');
end;
procedure TFW210Form.ComboBox2Change(Sender: TObject);
begin
inherited;
if combobox2.Text = '文本文件' then
{--- 如果是文本文件的话,让用户选择分隔符 ---}
Panel2.Visible := True
else
Panel2.Visible := False;
end;
procedure TFW210Form.Button4Click(Sender: TObject);
{var ss:TStrings; }
begin
inherited;
{ss:= TStringList.Create;
dm.conn.GetFieldNames(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex],ss);
memo1.Clear;
memo1.Lines.Add(RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]);
memo1.Lines.AddStrings(ss);
}
{memo1.Clear;
ss:= TStringList.Create;
dm.conn.GetTableNames(ss,false);
memo1.Lines.AddStrings(ss);
}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -