一个搞笑的delphi的 bug ? 还是我自己写错了?

qufo 2008-04-11 10:07:28
我昨天写了一个小程序,从一个网站取网页回来,然后把源码进行分析,提取所需要的数据,然后存入数据库。

一个很简单的小程序吧,结果发生了很搞笑的事情。

程序取网页取到一定数量的时候(不确定是多少,有时多有时少),然后程序会死掉,没动静,CPU占用50%(我的双核)
然后,程序没法自己关掉,只好结束任何。

但是,问题来了,下次再启动这个程序时,就报错,启动不了,是那种直接出来要调试的那种,根本不知道错误是什么,汗。

我备份过程序的二进制代码,保证程序本身没有任何问题。在程序执行过程中没有任何地方有机会更改程序自己(汗,程序自己更改自己?程序执行的时候应该是只读的吧)

百思不得其解之余,打开 delphi ,重新生成.exe,运行,又OK了。

过一段时间,又锁死了,结束之,进delphi重新生成,又OK了。

MD,这算怎么回事?
...全文
192 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxtnt 2008-04-13
  • 打赏
  • 举报
回复
程序的健壮性不好
qufo 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fenger8293 的回复:]
可能是你的程序里调用了某些东西,在非正常关闭的时候,这些东西没有被释放,而在重新编译的时候delphi帮你初始化掉了.
最好检查你的代码,才用多线程来处理下载分析数据看看
[/Quote]



多线程意义不大,我需要单线程。

我重启过电脑,所有的东西都free掉了才对。
qufo 2008-04-11
  • 打赏
  • 举报
回复

我刚重启过电脑,这下所有的东西都free掉了吧?

结果还是一样。

lyguo 2008-04-11
  • 打赏
  • 举报
回复
非正常退出可能没有FREE一些数据吧.
手指风 2008-04-11
  • 打赏
  • 举报
回复
可能是你的程序里调用了某些东西,在非正常关闭的时候,这些东西没有被释放,而在重新编译的时候delphi帮你初始化掉了.
最好检查你的代码,才用多线程来处理下载分析数据看看
qufo 2008-04-11
  • 打赏
  • 举报
回复
我用FC 比较过,除了编译日期之类的不同外,其他的一模一样。
killerprince 2008-04-11
  • 打赏
  • 举报
回复
哈哈 这么奇怪,不会是有病毒吧?
等高人解释~~~
qufo 2008-04-11
  • 打赏
  • 举报
回复
自魢唑沙髮!
lobtao 2008-04-11
  • 打赏
  • 举报
回复
嗯 ,很有可能哦
hthunter 2008-04-11
  • 打赏
  • 举报
回复
呵呵,被windows加入黑名单了?
SynEditStudio更新 ---------- v2.6(2005.09.05) ---------- - 01.TSynManager,修正若DefaultSource为nil会出错的BUG; - 02.TSynEditor,修正了自定义命令处理错误的BUG; - 03.TSynEdit,修正了在快速移动光标时会出现延迟的BUG; - 04.TSynEdit,重新改写了高亮显示当前行的代码; - 05.TSynCustomHighlighter,增加了一个过程CanHighlighter; - 06.SynEditActions,重新修改Highlighter的管理,支持所有继承于TSynCustomHighlighter的Highlighter; - 07.重新整理安装包,只需安装SynEdit_DX(X是你用的Delphi版本).dpk; ---------- ---------- v2.5(2005.08.29) ---------- - 01.TSynEdit,增加运行时可以用鼠标移动右边线的功能; - 02.SynEditActions,修正若干小处的BUG,增加TaSynOptionsSetting(Action); - 03.SynOptionsDlg,增加一个选项对话框; - 04.SynEdiSource,增加Assign函数对TSynEdiSource的支持; ---------- ---------- v2.4(2005.07.29) ---------- - 01.对所有非Delphi6的包去掉SynSpellCheck的注册; - 02.TSynEdit,再次轻微修改一些BUG; - 03.修改Demo,增加类似于IDE的代码补充的功能; ---------- ---------- v2.3(2005.06.25) ---------- - 01.TSynEdit,再次修改了缓冲技术的代码和删除了用API锁定的画面; - 02.TSynEdit,修正了控件自动换行后使用书签时会出面的异常; ---------- ---------- v2.2(2005.06.8) ---------- - 01.SynEditActions,修正若是Action放在工具条上时会不断的闪烁的Bug; - 02.TSynEdit,修正了控件出现'has no parent window'异常的可能,未经测试; ---------- ---------- v2.1(2005.06.1) ---------- - 01.TSynEdit,修改滚动条不现示的BUG; - 02.TSynEdit,修改控件可能会出现错误的异常; - 03.SynEditActions,基本完成,更新注册,并重做了个Demo; ---------- ---------- v1.2(2005.05.29) ---------- - 01.TSynEdit,稍稍修改使用缓冲技术后可能出现的异常; - 02.SynEditActions,一个包含各种synedit动作的单元,目前只提供测试,没有注册单元; ---------- ---------- v1.1(2005.05.23) ---------- - 01.SynSpellReg,修正了这个单元注册时会找不到dcr文件的错误; - 02.TSynEdit,修正了按END键到下一行开头等其它键类似的定位错误; - 03.TSynEdit,修正了快速录入大量文本闪烁问题,使用缓冲技术和API锁定; ---------- ---------- v1.0(2005.05.20) ---------- - 01.TSynAutoCorrect,改正控件原先不支持中文输入的特点; - 02.TSynEdit,增加一个属性ActiveLine,类属性,具体参考TSynActiveLine; - 03.TSynEdit,增加一个属性LineDivider,类属性,具体参考TSynLineDivider; - 04.TSynEdit,增加一个属性WordWrap,类属性,具体参考TSynWordWrap; - 05.TSynEdit,增加一个属性RightEdge,类属性,具体参考TSynRightEdge; - 06.TSynEdit,修改高亮当前行的方式,在自动换行的情况也只高亮一行; - 07.TSynEdit,当行间距大于零时,原本文本会显示于靠上,现修改于垂直中间对齐; - 08.TSynEdit,增加一个属性LineSpacing,可指定行间距; - 09.TSynEdit,增加一个属性LineSpacingRule,可指定行间距类型; - 10.TSynEdit,修正当控件是在一个子窗口上时,若是焦点转回到主窗口中某个控件后再转回来时会不能显示光标的BUG; - 11.TSynEdit,修正当第一列显示的字符是双字节字符的第二个字节时,在高亮当前行情况下会把第一个字节显示在行号区上的BUG; - 12.TSynEdit,修正了DoCaseChange,加快转换字母大小写的处理速度和精简代码,也避免出现一些双字节字符的丢失; - 13.TSynEdit,修正画右边线的代码,避免有时右边线颜色显示出错; - 14.TSynEdit,修正了改变属性TEXT后不能UNDO的特性; - 15.TSynEditSource,新添加的自己写的控件,用于存储Synedit的属性,详细请查看单元SynEditSource; - 16.TSynEditSearcher,新添加的自己写的类,用于简化Synedit搜索,详细请查看单元SynEditSearcher; - 17.TSynUniSyn,新添加的修改过的第三方控件,一个通用的Highlighter,详细请查看单元SynUniHighlighter; - 18.TSynSpellCheck,新添加的第三方控件,一个拼写检查控件,详细请查看单元SynSpellCheck; - 19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 - 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; - 21.SynEditStrRes,一个字符串常量声明单元,存储增加的自定义的控件中用到的字符串; ---------- ---------- 编译环境 ---------- - 系统 - Windows2000 (Build 2195: Service Pack 3) - 工具 - Borland Delphi 6 (Build 6.240) Update Pack 2 - 无错编译通过,并测试正常. ----------
资料已经上传(其他注意事项和说明参考上一篇)大小11M。注意事项:解压密码与上一篇相同(158100232832041)。内容包括:事业单位的源代码、安装程序、介绍一下修改的控件和程序所使用的一些方法.doc。说明、控件、安装程序代码在上篇,都基本相同,就不上传了。本程序机构信息不能输入数据(当时为了保证购买率),只能接受上报的内容,不影响添加数据。这个程序做的不如上一个bug也多,只是给大家提供了一种模式化开发程序的思路,因为语句、操作、界面都与上一篇一样,只是算法和一些数据操作不同。开发程序效率第一(时间紧任务重),请大家谅解。这两个程序是应用户要求做的,用户思路是:功能越简单的程序就要做的越漂亮。可能太花哨了,仅供大家参考。这个程序作的不是太好,也有bug,没时间修改后提供给大家了,上一篇也有bug。别把这两个程序当作应用软件,只当作一篇参考文档就行了。学delphi的时间有限,加上没时间看书所以程序写的还不够专业、不够标准、不够简洁,还有一些错误,大家只是参考一下就行了,我也只能算初学,如果对你有帮助,是我最高兴的。如果有时间,再发布一些以前做的许可发布的网络数据库用程序(D7,VC)。大家进步我才能进步,所以不论做什么项目在不牵涉版权、经济的前提下都会提供源代码和开发包。感谢盒子提供空间上传资料,因为很多程序源代码很短,但开发包很大,只有源代码是没有用的,感谢盒子提供了一个交流的空间。另外:上一篇的开发包里面的控件都是修改过控件里面的错误的,并汉化,并不是原版的,需要修改或重新编译源程序,就需使用这些控件。再有:这一篇和上一篇里有一个程序原文件发成旧的了,有错误,编译也搞成错的了,是处理时间输入的部分,不过不影响参考应用。安装程序里少了个文件,重新发了一下。这个程序只适应小数据量操作,如果大数据量其实只要编写SQL存储过程、触发器在程序里面调用就可以了,那才是真正好的程序。谢谢盒子。songyux@yeah.net 2004.8
SynEdit Studio Readme谢谢使用SynEdit Studio;此控件包基于基于SynEdit加强,增加了一些第三方的SynEdit控件和自己写的控件;原SynEdit控件包开发者:Pieter Zijlstra;增强修改包作者:姚乔锋 yaoqiaofeng@sohu.com最近的版本请关注www.delphibox.com和www.delphifans.com;SynEdit Studio History修改版本 2005.06.8 01.SynEditActions,修正若是Action放在工具条上时会不断的闪烁的Bug; 02.TSynEdit,修正了控件出现'has no parent window'异常的可能,未经测试;修改版本 2005.06.1 01.TSynEdit,修改滚动条不现示的BUG; 02.TSynEdit,修改控件可能会出现错误的异常; 03.SynEditActions,基本完成,更新注册,并重做了个Demo;修改版本 2005.05.29 01.TSynEdit,稍稍修改使用缓冲技术后可能出现的异常; 02.SynEditActions,一个包含各种synedit动作的单元,目前只提供测试,没有注册单元;修改版本 2005.05.23 01.SynSpellReg,修正了这个单元注册时会找不到dcr文件的错误; 02.TSynEdit,修正了按END键到下一行开头等其它键类似的定位错误; 03.TSynEdit,修正了快速录入大量文本闪烁问题,使用缓冲技术和API锁定;修改版本 2005.05.20 01.TSynAutoCorrect,改正控件原先不支持中文输入的特点; 02.TSynEdit,增加一个属性ActiveLine,类属性,具体参考TSynActiveLine; 03.TSynEdit,增加一个属性LineDivider,类属性,具体参考TSynLineDivider; 04.TSynEdit,增加一个属性WordWrap,类属性,具体参考TSynWordWrap; 05.TSynEdit,增加一个属性RightEdge,类属性,具体参考TSynRightEdge; 06.TSynEdit,修改高亮当前行的方式,在自动换行的情况也只高亮一行; 07.TSynEdit,当行间距大于零时,原本文本会显示于靠上,现修改于垂直中间对齐; 08.TSynEdit,增加一个属性LineSpacing,可指定行间距; 09.TSynEdit,增加一个属性LineSpacingRule,可指定行间距类型; 10.TSynEdit,修正当控件是在一个子窗口上时,若是焦点转回到主窗口中某个控件后再转回来时会不能显示光标的BUG; 11.TSynEdit,修正当第一列显示的字符是双字节字符的第二个字节时,在高亮当前行情况下会把第一个字节显示在行号区上的BUG; 12.TSynEdit,修正了DoCaseChange,加快转换字母大小写的处理速度和精简代码,也避免出现一些双字节字符的丢失; 13.TSynEdit,修正画右边线的代码,避免有时右边线颜色显示出错; 14.TSynEdit,修正了改变属性TEXT后不能UNDO的特性; 15.TSynEditSource,新添加的自己写的控件,用于存储Synedit的属性,详细请查看单元SynEditSource; 16.TSynEditSearcher,新添加的自己写的类,用于简化Synedit搜索,详细请查看单元SynEditSearcher; 17.TSynUniSyn,新添加的修改过的第三方控件,一个通用的Highlighter,详细请查看单元SynUniHighlighter; 18.TSynSpellCheck,新添加的第三方控件,一个拼写检查控件,详细请查看单元SynSpellCheck; 19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,存储增加的自定义的控件中用到的字符串;编译环境 系统 Windows2000 (Build 2195: Service Pack 3) 工具 Borland Delphi 6 (Build 6.240) Update Pack 2 无错编译通过,并测试正常.
========== SynEdit Studio Readme==========谢谢使用SynEdit Studio;此控件包基于基于SynEdit加强,增加了一些第三方的SynEdit控件和自己写的控件;原SynEdit控件包开发者:Pieter Zijlstra;增强修改包作者:姚乔锋 yaoqiaofeng@sohu.com最近的版本请关注www.delphibox.com和www.delphifans.com;========== SynEdit Studio History========== 修改版本 2005.06.25 01.TSynEdit,再次修改了缓冲技术的代码和删除了用API锁定的画面; 02.TSynEdit,修正了控件自动换行后使用书签时会出面的异常;修改版本 2005.06.8 01.SynEditActions,修正若是Action放在工具条上时会不断的闪烁的Bug; 02.TSynEdit,修正了控件出现'has no parent window'异常的可能,未经测试;修改版本 2005.06.1 01.TSynEdit,修改滚动条不现示的BUG; 02.TSynEdit,修改控件可能会出现错误的异常; 03.SynEditActions,基本完成,更新注册,并重做了个Demo;修改版本 2005.05.29 01.TSynEdit,稍稍修改使用缓冲技术后可能出现的异常; 02.SynEditActions,一个包含各种synedit动作的单元,目前只提供测试,没有注册单元;修改版本 2005.05.23 01.SynSpellReg,修正了这个单元注册时会找不到dcr文件的错误; 02.TSynEdit,修正了按END键到下一行开头等其它键类似的定位错误; 03.TSynEdit,修正了快速录入大量文本闪烁问题,使用缓冲技术和API锁定;修改版本 2005.05.20 01.TSynAutoCorrect,改正控件原先不支持中文输入的特点; 02.TSynEdit,增加一个属性ActiveLine,类属性,具体参考TSynActiveLine; 03.TSynEdit,增加一个属性LineDivider,类属性,具体参考TSynLineDivider; 04.TSynEdit,增加一个属性WordWrap,类属性,具体参考TSynWordWrap; 05.TSynEdit,增加一个属性RightEdge,类属性,具体参考TSynRightEdge; 06.TSynEdit,修改高亮当前行的方式,在自动换行的情况也只高亮一行; 07.TSynEdit,当行间距大于零时,原本文本会显示于靠上,现修改于垂直中间对齐; 08.TSynEdit,增加一个属性LineSpacing,可指定行间距; 09.TSynEdit,增加一个属性LineSpacingRule,可指定行间距类型; 10.TSynEdit,修正当控件是在一个子窗口上时,若是焦点转回到主窗口中某个控件后再转回来时会不能显示光标的BUG; 11.TSynEdit,修正当第一列显示的字符是双字节字符的第二个字节时,在高亮当前行情况下会把第一个字节显示在行号区上的BUG; 12.TSynEdit,修正了DoCaseChange,加快转换字母大小写的处理速度和精简代码,也避免出现一些双字节字符的丢失; 13.TSynEdit,修正画右边线的代码,避免有时右边线颜色显示出错; 14.TSynEdit,修正了改变属性TEXT后不能UNDO的特性; 15.TSynEditSource,新添加的自己写的控件,用于存储Synedit的属性,详细请查看单元SynEditSource; 16.TSynEditSearcher,新添加的自己写的类,用于简化Synedit搜索,详细请查看单元SynEditSearcher; 17.TSynUniSyn,新添加的修改过的第三方控件,一个通用的Highlighter,详细请查看单元SynUniHighlighter; 18.TSynSpellCheck,新添加的第三方控件,一个拼写检查控件,详细请查看单元SynSpellCheck; 19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,存储增加的自定义的控件中用到的字符串;编译环境 系统 Windows2000 (Build 2195: Service Pack 3) 工具 Borland Delphi 6 (Build 6.240) Update Pack 2 无错编译通过,并测试正常.
SynEditStudio更新 ---------- v3.0(2005.09.10 beta2.00) ---------- - 01.TSynManager,修正会出现'Cannot assign a TSynHighlighterItem to a TSynHighlighterItem'的错误; - 02.TSynEdit,增加属性ScrollBarsStyle,以支持显示各种样式的滚动条; - 03.TSynEdit,修正滚动滚动条时会显示错乱的BUG; - 04.TSynEdit,增加进最新版本的一些元素; - 05.TSynEdit,修正一些会导致内存读取错误的BUG; - 06.TSynEditSource,增加一些相应的属性; - 07.TSynOptionsForm,更新选项对话框; - 08.TSynUniSyn,更新至最新的版本,汉化并修正了UniEdit(源码位置HighlightersUni Syntax Editor); - 09.TaSynToggleHighlighter,增加一个Action,用来切换高亮显示语法; - 10.增加拼写检查的字典在Dictionary目录下; - 11.TSynEditPrint,修正了在换行打印时会出现'List index out of bounds -1'和不支持双字节的BUG; - 12.TSynEdit,修正了光标大小以行间距作为基准而不是以字符高度作为基准的BUG; - 13.TSynEdit,修正在使用了高亮控件后若是行最后一个可显字符是双字节前半部分时会变成小方框的BUG; - 14.TSynEdit,增加ExpandLines属性,返回为引用为TSynEditStringList的Lines; - 15.TSynEditStringList,增加DeleteBlankLineAtEOF(默认为True)属性,当为True时会在载入文件时删除文件最后所有空白行; ---------- ---------- v2.6(2005.09.05) ---------- - 01.TSynManager,修正若DefaultSource为nil会出错的BUG; - 02.TSynEditor,修正了自定义命令处理错误的BUG; - 03.TSynEdit,修正了在快速移动光标时会出现延迟的BUG; - 04.TSynEdit,重新改写了高亮显示当前行的代码; - 05.TSynCustomHighlighter,增加了一个过程CanHighlighter; - 06.SynEditActions,重新修改Highlighter的管理,支持所有继承于TSynCustomHighlighter的Highlighter; - 07.重新整理安装包,只需安装SynEdit_DX(X是你用的Delphi版本).dpk; ---------- ---------- v2.5(2005.08.29) ---------- - 01.TSynEdit,增加运行时可以用鼠标移动右边线的功能; - 02.SynEditActions,修正若干小处的BUG,增加TaSynOptionsSetting(Action); - 03.SynOptionsDlg,增加一个选项对话框; - 04.SynEdiSource,增加Assign函数对TSynEdiSource的支持; ---------- ---------- v2.4(2005.07.29) ---------- - 01.对所有非Delphi6的包去掉SynSpellCheck的注册; - 02.TSynEdit,再次轻微修改一些BUG; - 03.修改Demo,增加类似于IDE的代码补充的功能; ---------- ---------- v2.3(2005.06.25) ---------- - 01.TSynEdit,再次修改了缓冲技术的代码和删除了用API锁定的画面; - 02.TSynEdit,修正了控件自动换行后使用书签时会出面的异常; ---------- ---------- v2.2(2005.06.8) ---------- - 01.SynEditActions,修正若是Action放在工具条上时会不断的闪烁的Bug; - 02.TSynEdit,修正了控件出现'has no parent window'异常的可能,未经测试; ---------- ---------- v2.1(2005.06.1) ---------- - 01.TSynEdit,修改滚动条不现示的BUG; - 02.TSynEdit,修改控件可能会出现错误的异常; - 03.SynEditActions,基本完成,更新注册,并重做了个Demo; ---------- ---------- v1.2(2005.05.29) ---------- - 01.TSynEdit,稍稍修改使用缓冲技术后可能出现的异常; - 02.SynEditActions,一个包含各种synedit动作的单元,目前只提供测试,没有注册单元; ---------- ---------- v1.1(2005.05.23) ---------- - 01.SynSpellReg,修正了这个单元注册时会找不到dcr文件的错误; - 02.TSynEdit,修正了按END键到下一行开头等其它键类似的定位错误; - 03.TSynEdit,修正了快速录入大量文本闪烁问题,使用缓冲技术和API锁定; ---------- ---------- v1.0(2005.05.20) ---------- - 01.TSynAutoCorrect,改正控件原先不支持中文输入的特点; - 02.TSynEdit,增加一个属性ActiveLine,类属性,具体参考TSynActiveLine; - 03.TSynEdit,增加一个属性LineDivider,类属性,具体参考TSynLineDivider; - 04.TSynEdit,增加一个属性WordWrap,类属性,具体参考TSynWordWrap; - 05.TSynEdit,增加一个属性RightEdge,类属性,具体参考TSynRightEdge; - 06.TSynEdit,修改高亮当前行的方式,在自动换行的情况也只高亮一行; - 07.TSynEdit,当行间距大于零时,原本文本会显示于靠上,现修改于垂直中间对齐; - 08.TSynEdit,增加一个属性LineSpacing,可指定行间距; - 09.TSynEdit,增加一个属性LineSpacingRule,可指定行间距类型; - 10.TSynEdit,修正当控件是在一个子窗口上时,若是焦点转回到主窗口中某个控件后再转回来时会不能显示光标的BUG; - 11.TSynEdit,修正当第一列显示的字符是双字节字符的第二个字节时,在高亮当前行情况下会把第一个字节显示在行号区上的BUG; - 12.TSynEdit,修正了DoCaseChange,加快转换字母大小写的处理速度和精简代码,也避免出现一些双字节字符的丢失; - 13.TSynEdit,修正画右边线的代码,避免有时右边线颜色显示出错; - 14.TSynEdit,修正了改变属性TEXT后不能UNDO的特性; - 15.TSynEditSource,新添加的自己写的控件,用于存储Synedit的属性,详细请查看单元SynEditSource; - 16.TSynEditSearcher,新添加的自己写的类,用于简化Synedit搜索,详细请查看单元SynEditSearcher; - 17.TSynUniSyn,新添加的修改过的第三方控件,一个通用的Highlighter,详细请查看单元SynUniHighlighter; - 18.TSynSpellCheck,新添加的第三方控件,一个拼写检查控件,详细请查看单元SynSpellCheck; - 19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 - 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; - 21.SynEditStrRes,一个字符串常量声明单元,存储增加的自定义的控件中用到的字符串; ---------- ---------- 编译环境 ---------- - 系统 - Windows2000 (Build 2195: Service Pack 3) - 工具 - Borland Delphi 6 (Build 6.240) Update Pack 2 - 无错编译通过,并测试正常. ----------

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧