社区
Delphi
帖子详情
如何得到当前执行的语句在源代码中的行数?
mycode
2001-06-03 01:16:00
在程序执行中,我想写入日志,记录当前发生的情况,同时我也想记录下来,自身这条语句在源代码中的行数,以便于查错时快速定位;
...全文
305
30
打赏
收藏
如何得到当前执行的语句在源代码中的行数?
在程序执行中,我想写入日志,记录当前发生的情况,同时我也想记录下来,自身这条语句在源代码中的行数,以便于查错时快速定位;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mycode
2001-06-23
打赏
举报
回复
好办法,好主意!
pipai
2001-06-19
打赏
举报
回复
如果你只是想记录行号、文件名信息,在设置Assertions选项的基础上,采用如下方法:
Procedure RecordFileNameAndLineNum( Const errmsg : String );
Var psFileName, peFileName : Integer;
psLineNum , peLineNum : Integer;
strFileName, strLineNum : String;
Begin
psFilename := Pos( '(', errmsg );
Inc( psFileName );
peFileName := Pos( ',', errmsg );
strFileName:= Copy( errMsg, psFileName, peFileName-psFileName );
psLineNum := Pos( 'line ', errmsg );
psLineNum := psLineNum + 5;
peLineNum := Pos( ')', errmsg );
strLineNum := Copy( errMsg, psLineNum, peLineNum-psLineNum );
//记录 strFileName 和 strLineNum
End;
在需要记录文件名和行号的地方,如下:
Try
Assert( false );
Except
On E : EAssertionFailed Do
RecordFileNameAndLineNum( E.message );
End;
pipai
2001-06-19
打赏
举报
回复
Assert可以,只是必须把project--options--compiler--debugging--Assertions选中,
你可以在程序用下面语句测试:
Assert( false, 'test');
warrior
2001-06-19
打赏
举报
回复
理论上可以这么做:
编一个汇编过程,在需要调试的地方调用它。
在过程中取调用者的返回地址,并记录。
DELPHI的IDE支持通过指令地址查找语句。
mycode
2001-06-19
打赏
举报
回复
Delphi的是什么?
windindance
2001-06-18
打赏
举报
回复
用BCB就有了。
define CODELINE __LINE__
mycode
2001-06-17
打赏
举报
回复
还想得到更好的回答!
songlichao
2001-06-10
打赏
举报
回复
gz
mycode
2001-06-10
打赏
举报
回复
如果按zswang(zs)的方法去做,对一个几万行甚至十几万行的程序,估计可能性不大;
排错的工作量和难度也加大了不少;
无论如何感谢zswang(zs);
王集鹄
2001-06-09
打赏
举报
回复
你是不是看角本程序看多了
如果你想研究一下怎样控制Delphi IDE
请关注我发的帖子
王集鹄
2001-06-09
打赏
举报
回复
没有必要大动干戈
try
{}
except
{保存当前的错误地址}
end;
//test
const
cErrLogFile = 'ErrAddr.log';
begin
try
Query1.Close;
Query1.SQL.Text := Edit1.Text;
except
with TStringList.Create do try
if FileExists(cErrLogFile) then LoadFromFile(cErrLogFile);
Add('<XGUIDX>'{Shift+Ctrl+G} + FormatDateTime('YYYY-MM-DD HH:NN:SS', NOW));
SaveToFile(cErrLogFile);
finally
Free;
end;
end;
//出错的时候你可以在代码中查<XGUIDX>
mycode
2001-06-09
打赏
举报
回复
唔...
mycode
2001-06-08
打赏
举报
回复
还有人来说一说吗?
c_hk
2001-06-07
打赏
举报
回复
唔.....
c_hk
2001-06-07
打赏
举报
回复
观望
mycode
2001-06-07
打赏
举报
回复
听说一个叫numega公司开发的产品,调试功能很强大;哪位知道?
mycode
2001-06-06
打赏
举报
回复
听说一个叫numega公司开发的产品,调试功能很强大;哪位知道?
mycode
2001-06-05
打赏
举报
回复
谁来找到它?
windindance
2001-06-04
打赏
举报
回复
to:Kingron(WinAPI):
C里是支持的(在#define __LINE__),但DELPHI中好象不支持吧?因为DELPHI不支持宏调用。
mycode
2001-06-04
打赏
举报
回复
to:Kingron(WinAPI)
请详细说明一下?
加载更多回复(10)
统计java代码
行数
能统计编写了多少行Java代码和注释,和类的个数
c#Winform
中
如何在datagridview
中
进行分页?
c#Winform
中
如何在datagridview
中
进行分页?
实验一 条件
语句
、循环
语句
的使用 for循环嵌套打印由“*”组成的直角三角形
实验目的 4、掌握for循环
语句
的语法格式和使用,了解for循环
语句
的特点。 5、掌握循环嵌套的使用和
执行
顺序。 项目5、用for循环嵌套打印由“*”组成的直角三角形。具体要求如下: 第一个三角形为倒直角三角形,共5行,第一行5个 “*”,一行减少一个,第5行一个“*” 将倒直角三角形上下翻转为正直角三角形,第一行1一个“*”,第5行5个“*” 1) 分析第一个三角形的打印,外层for循环控制
行数
,初始化表达式从0开始,循环条件为小于5;第一行是5个“*”所以应该内层循环打印5次,初始化表达式从0开始,循环条件为小于5。同理,内层的循环初始化和条件如下所示: 0 1 2 3 4 1 2 3 4 2 3 4 3 4 4 由此可见内层循环的初始化表达式y 与外层的x是相等的,循环条件都是小于5。 2)分析第二个三角形的打印,第一行1个“*”,第二行2个“*”...由此可见,内层循环的循环次数与
行数
是相等的,所以内层循环的y小于或等于外层的x。
MSSQL存储过程基础
存储过程基础存储过程基础存储过程基础存储过程基础存储过程基础存储过程基础存储过程基础存储过程基础存储过程基础
DataGridView分页功能的实现
C# DataGridView分页功能的实现
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章