社区
C++ Builder
帖子详情
TStrings::SaveToFile,如果文件已经存在怎样保存?
marcal
2002-03-11 05:08:44
TStrings::SaveToFile,如果文件已经存在怎样保存?这个问题我用的方法是删除原来的文件,但是总觉得这样很不安全。所以想请教各位。
...全文
101
10
打赏
收藏
TStrings::SaveToFile,如果文件已经存在怎样保存?
TStrings::SaveToFile,如果文件已经存在怎样保存?这个问题我用的方法是删除原来的文件,但是总觉得这样很不安全。所以想请教各位。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
marcal
2002-03-12
打赏
举报
回复
谢谢大家了,原来我试过好像不能覆盖的,今天再试又能覆盖了。所以问题解决了。
cobi
2002-03-11
打赏
举报
回复
if (FileExists("file"))
{
switch(Application->MessageBox("File already exists. overwrite ?", "Warning", MB_ICONWARNING+MB_YESNO) )
{
case ID_YES:
...
case ID_NO:
...
}
}
就这样处理就行了。
因为strings.savetofile默认是覆盖原文件,你加上一个用户确认窗口会好一点
whitelion
2002-03-11
打赏
举报
回复
先提示是否覆盖然后再存
如果全是你自己写的文件,直接覆盖就是
我不懂电脑
2002-03-11
打赏
举报
回复
玩了
Cipherliu
2002-03-11
打赏
举报
回复
同意各位的意见。
skycrying
2002-03-11
打赏
举报
回复
也可以向Ultraedit一样,将原来的备份。
duduwolf
2002-03-11
打赏
举报
回复
同意,同意,先删除在saveto咯
40Star
2002-03-11
打赏
举报
回复
对阿,你可以先提醒用户是否删除
windindance
2002-03-11
打赏
举报
回复
if (FileExists("file"))
{
switch(Application->MessageBox("File already exists. overwrite ?", "Warning", MB_ICONWARNING+MB_YESNO) )
{
case ID_YES:
...
case ID_NO:
...
}
}
wt_sanlian
2002-03-11
打赏
举报
回复
不需要删除原来的文件
SaveToFile直接用最新的内容覆盖原来的内容!
Delphi将TableToClass 表
文件
转换成类
文件
.rar
Delphi将TableToClass 表
文件
转换成类
文件
,//刷新数据库procedure RefreshDB; //读取数据库名称列表 function ReadDBNameList: T
String
List; //读取数据表名称列表 function ReadTableNameList: T
String
List; function TableToClassInfo(ATableName:
string
): T
String
s; //取得SQLServer字段的类型,返回相应Delphi变量类型 function GetColumnType(AType: integer):
string
; //取得SQLServer字段的类型,返回相应字符串 function GetDBColumnType(AType: integer):
string
; //仅生成类信息 procedure GenerateClassInfo; //生成Unit
文件
procedure GenerateUnit
File
; procedure TableToClassInfo1(ATableName:
string
; var AClassList1, AClassList2: T
String
List); //取得
保存
的
文件
名,没有扩展名 function Get
File
Name(A
File
Name:
string
):
string
; //
保存
文件
procedure SaveTo
File
(AList: T
String
List = nil); //取取选择数据表的数量
Delphi网络公用函数
//
文件
操作部分起 //拷贝一个
文件
,封装Copy
File
procedure
File
Copy
File
(const sSrc
File
, sDst
File
:
string
); //给定路径复制
文件
到同一目录下 bRecursive:true所有 procedure
File
CopyDirectory(sDir, tDir:
string
; bRecursive: Boolean);overload; //给定路径原样复制
文件
,自编 procedure
File
CopyDirectory(sDir, tDir:
string
);overload; //给定路径原样复制
文件
,用WinAPI ,若原目录下有相同
文件
则再生成一个 procedure
File
CopyDirectory(sDir, tDir:
string
;AHandle:Thandle);overload; //移动
文件
夹 procedure
File
MoveDirectory(sDir, tDir:
string
;AHandle:Thandle); //删除给定路径及以下的所有路径和
文件
procedure
File
DeleteDirectory(sDir:
string
);overload; //删除给定路径及以下的所有路径和
文件
用WinApi procedure
File
DeleteDirectory(AHandle: THandle;const ADirName:
string
);overload; //删除给定路径及以下的所有路径和
文件
到回收站 procedure
File
DeleteDirectoryToCycle(AHandle: THandle;const ADirName:
string
); //取得指定
文件
的大小 function
File
Get
File
Size(const
File
name:
string
): DWORD; //在Path下取得唯一
File
nameX
文件
function
File
GetUnique
File
Name(const Path:
string
;
File
name:
string
):
string
; //取得临时
文件
function
File
GetTemporary
File
Name:
string
; //取得系统路径 function PathGetSystemPath:
string
; //取得Windows路径 function PathGetWindowsPath:
string
; //给定
文件
名取得在系统目录下的路径,复制时用 function PathSystemDir
File
(const
File
name:
string
):
string
; //给定
文件
名取得在Windows目录下的路径,复制时用 function PathWindowsDir
File
(const
File
name:
string
):
string
; //给定
文件
名取得在系统盘下的路径,复制时用 function PathSystemDrive
File
(const
File
name:
string
):
string
; //路径最后有'/'则去'/' function PathWithoutSlash(const Path:
string
):
string
; //路径最后没有'/'则加'/' function PathWithSlash(const Path:
string
):
string
; //取得两路径的不同部分,条件是前半部分相同 function PathRelativePath(BaseDir,
File
Path:
string
):
string
; //取得去掉属性的路径,
文件
名也作为DIR function PathExtract
File
NameNoExt(
File
name:
string
):
string
; //判断两路径是否相等 function PathComparePath(const Path1, Path2:
string
): Boolean; //取得给定路径的父路径 function PathParentDirectory(Path:
string
):
string
; //分割路径,Result=根(如d:)sPath = 除根外的其他部分 function PathGetRootDir(var sPath:
string
):
string
; //取得路径最后部分和其他部分 如d:\aa\aa result:=aa sPath:=d:\aa\ function PathGetLeafDir(var sPath:
string
):
string
; //取得当前应用程序的路径 function PathExeDir(
File
Name:
string
= ''):
string
; //
文件
操作部分止 //系统处理起 //提示窗口 procedure MsgBox(const Msg:
string
); //错误显示窗口 procedure MsgErrBox(const Msg:
string
); //询问窗口 带'是','否'按钮 function MsgYesNoBox(const Msg:
string
): Boolean; //询问窗口 带'是','否,'取消'按钮//返回值smbYes,smbNo,smbCancel function MsgYesNoCancelBox(const Msg:
string
): Integer; //使鼠标变忙和恢复正常 procedure DoBusy(Busy: Boolean); //显示错误信息 procedure ShowLastError(const Msg:
string
= 'API Error'); //发出错误信息 procedure RaiseLastError(const Msg:
string
= 'API Error'); //释放
String
s连接的相关资源 procedure Free
String
sObjects(SL: T
String
s); //系统处理止 //时间处理起 //整数到时间 function TimeT_To_DateTime(TimeT: Longint): TDateTime; //转化为秒 function TimeToSecond(const H, M, S: Integer): Integer; //秒转化 procedure TimeSecondToTime(const secs: Integer; var H, M, S: Word); //秒转化 function TimeSecondToTimeStr(secs: Integer):
string
; //时间处理止 //控件处理起 //设置控件是否能使用 procedure ConEnableControl(AControl: TControl; Enable: Boolean); //设置控件是否能使用,包子控件 procedure ConEnableChildControls(AControl: TControl; Enable: Boolean); procedure ConEnableClassControl(AControl: TControl; Enable: Boolean; ControlClass: TControlClass); procedure ConFree(aCon: TWinControl);//释放aCon上的控件 //从
文件
本中导入,类似Loadfrom
File
procedure ConLoadTreeViewFromText
File
(Nodes: TTreeNodes;
File
name:
string
); //存为文本,类似SaveTo
File
procedure ConSaveTreeViewToText
File
(Nodes: TTreeNodes;
File
name:
string
); //在控件上写文本 procedure ConWriteText(aContr: TControl;sText:
string
); //控件处理止 //字符串处理起 //取以Delimiters分隔的字符串 bTrail如果为True则把第index个后的也取出来 function StrGetToken(const S:
string
; index: Integer; bTrail: Boolean = False; Delimiters: TSysCharSet = DEFAULT_DELIMITERS):
string
; //取以Delimiters分隔的字符串的个数 function StrCountWords(S:
string
; Delimiters: TSysCharSet = DEFAULT_DELIMITERS): Integer; //用NewToken替换S中所有Token bCaseSensitive:=true大小写敏感 function StrReplace
String
(var S:
string
; const Token, NewToken:
string
; bCaseSensitive: Boolean): Boolean; //从第Index个起以Substr替换Count个字符 procedure StrSimple_Replace
String
(var S:
string
; const Substr:
string
; index, Count: Integer); //去掉S中的回车返行符 procedure StrTruncateCRLF(var S:
string
); //判定S是否以回车返行符结束 function StrIsContainingCRLF(const S:
string
): Boolean; //把SL中的各项数据转化为以Delimiter分隔的Str function StrComposite
String
s(SL: T
String
s; const Delimiter:
string
):
string
; //封装T
String
s的LoadFrom
File
function StrSafeLoad
String
s(SL: T
String
s; const
File
name:
string
): Boolean; //封装T
String
s的SaveTo
File
procedure StrSafeSave
String
s(SL: T
String
s; const
File
name:
string
); //字符串处理止 //字体处理起 procedure
String
ToFont(sFont:
string
; Font: TFont; bIncludeColor: Boolean = True); function FontTo
String
(Font: TFont; bIncludeColor: Boolean = True):
string
; //字体处理止 //网络起 //判定是否在线 function NetJudgeOnline:boolean; //得到本机的局域网Ip地址 Function NetGetLocalIp(var LocalIp:
string
): Boolean; //通过Ip返回机器名 Function NetGetNameByIPAddr(IPAddr:
string
; var MacName:
string
): Boolean ; //获取网络中SQLServer列表 Function NetGetSQLServerList(var List: T
string
list): Boolean; //获取网络中的所有网络类型 Function NetGetNetList(var List: T
string
list): Boolean; //获取网络中的工作组 Function NetGetGroupList(var List: T
String
List): Boolean; //获取工作组中所有计算机 Function NetGetUsers(GroupName:
string
; var List: T
String
List): Boolean; //获取网络中的资源 Function NetGetUserResource(IpAddr:
string
; var List: T
String
List): Boolean; //映射网络驱动器 Function NetAddConnection(NetPath: Pchar; PassWord: Pchar;LocalPath: Pchar): Boolean; //检测网络状态 Function NetCheckNet(IpAddr:
string
): Boolean; //检测机器是否登入网络 Function NetCheckMacAttachNet: Boolean; //判断Ip协议有没有安装 这个函数有问题 Function NetIsIPInstalled : boolean; //检测机器是否上网 Function NetInternetConnected: Boolean; //网络止 //窗口起 function FormCreateProcessFrm(MsgTitle:
string
):TForm; //窗口止 //EMail起 function CheckMailAddress(Text:
string
): boolean; //EMail止
IdHTTP1postget下载.rar
IdHTTP1postget下载
RePrint表格打印控件(打印 datasource,dbgrid,
string
grid)
功能更加强劲,增加多行表头的功能,新增更多事件,加强了打印期间对报表样式 的控制,可随意改变打印内容。 reprint 使用说明 本控件可打印 datasource,dbgrid,
string
grid. 一 、控件属性: 1、colstitle 设置报表的列标题属性 (1) Print:boolean;;是否打印 (2) Font:tfont;;字体 (3) Rowsline:tpen;;横线样式 (4) Colsline:tpen;;竖线样式 (5) Alignment:talignment;;对齐方式 (6) Rowspace:integer;;行间距 (7) EveryPage:boolean;;是否每页打印 (8) EveryRow:boolean;;是否每行打印 (9) titlearray:t
string
s;;怎加标题组 (使用方法见附带demo) (10) rows:integer;;设置默认列标题打印行数 2、datasource 绑定 datasource 3、dbgrid 绑定 dbgrid 4、
string
grid 绑定
string
grid PrintObject 选择打印的对象(datasource 、dbgrid、
string
grid ) 5、pagefooter 页脚 pageheader 页眉 (1) Text:
string
;;内容 (2) Font:tfont;;字体 (3) Print:boolean;;是否打印 (4) Alignment:talignment;;对齐方式 6、detail 设置要打印的明细数据属性 (1)arrange 设置明细字段排列方向 Horizontal 横向打印(默认的一般打印) Vertical 竖向打印(字段竖向排列适合打印字段内容较长的报表如“会议纪录”) (2)aotureturn 打印明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (设置同pagefooter 页脚 pageheader 页眉) (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头(设置同pagefooter 页脚 pageheader 页眉) (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 (10)Alignment对齐方式 7、page 设置纸张 (1) leftmargin:real;;左边距 (2) rightmargin:real;;右边距 (3) topmargin:real;;顶边距 (4) bottommargin:real;;底边距 (5) pagesize:TPageSize;;纸张类型 (6) Height:real;;高度 (7) width:real;;宽度 (8) Orientation:TPrinterOrientation;;打印方向 注意:设置纸张的宽度和高度需把pagesize设为Custom 8、title 设置标题 (1) Print:boolean;; 是否打印 (2) Text:t
string
s;; 内容可设置多行 (3) Font:tfont;;字体 (4) Alignment:talignment;;对齐方式 (5) top:integer;; 距纸张顶部距离 (6) Rowspace:integer;;行距 (7) EveryPage:boolean;;是否每页打印 二 、控件方法: (1) preview 预览 (2) print 打印 (3) SaveTo
File
()
保存
为报表
文件
(4) SaveToStream()
保存
为流(然后就可把整个报表存到数据库了很方便哦! ~_~) (5) Print
File
() 打印报表
文件
(6) PrintStream() 打印流(流的数据库存取就不用多说了吧) (7) Preview
File
() 预览
文件
(8) PreviewStream() 预览流 (9) OptionToStream() 报表的属性
保存
为流 (10) OptionFromStream() 从流中得到报表属性 (11) OptionPost()在打印期间改变了报表属性,要想立即生效调用此方法。 (12) PaintText(Text:
string
) 覆盖原有打印的字符,一般在能返回当前打印的内容的事件中使用。(见控件事件) 三、 控件事件: (1) AfterPrint 打印后 (2) BeforePrint 打印前 (3) OnPrintDetail(RecordNumber: Integer)在打印每一栏明细前触发此事件, 返回参数:RecordNumber返回当前打印行数。 (4) OnPrintDetailField(RecordNumber,FieldIndex: Integer;; FieldText:
String
);; 在打印明细的每个字段都会触发此事件。 返回参数:RecordNumber返回当前打印行数。 FieldIndex 字段索引 FieldText字段内容 (5) OnPrintTitle(Row: Integer;; Text:
String
)打印每行标题都会触发此事件。 返回参数:row当前打印的行 Text当前打印的内容 (6) OnPrintColsTitleField(Row, FieldIndex: Integer;; FieldName:
String
);; 打印列标题字段时触发此事件 返回参数:row当前打印的行 FieldIndex当前打印的字段索引 FieldName当前打印的字段名称 (7) OnPrintColsTitle(Row: Integer) 打印每行列标题时触发此事件 返回参数:row当前打印的行 四、注意事项 (1) text 属性,输入“¦#¦”打印页码值,如果想打印页码可输入“第¦#¦页” 输入“¦RecordCount¦”打印 记录数 (2) 不同的打印机,打印和预览效果可能有一点点不同(保证数据打印完全正确一致)。本人用一台针式和一台激光打印机做测试, 开始差别较大后经过调试基本一致,不知其他打印机如何。 (3) 纸张大小以及横向、竖向自动适应系统默认也可设置。 (4) 各列的宽度按比例,适应纸张宽度打印。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03
DELPHI经典编程入门(3).pdf
DELPHI经典编程入门(3).pdf
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章