您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Delphi陷阱大全.pdf
  所属分类: Delphi
  开发工具:
  文件大小: 10mb
  下载次数: 0
  上传时间: 2019-07-14
  提 供 者: chunya*******
 详细说明:Delphi陷阱大全.pdf目前很少有 Delphi相关的新书上架。以前出的书大都是讲解入门知识,要 么罗列组件的使用方法。深入探讨语言底层的很少见,希望这本书能够提供一些 补充吧。 软件开发最重妟的就是代码复用,我们来看看 Delphi为我们提供了多少官 方代码: 版本 行数 Delphi4 25万行 Delphi7 >80万行 Delphi2007 >100万行 DelphiXE2 >200万行 Lazarus 1.0 >180万行(包括收集的些第三方包) 这样大量的代码,其BUG量却很低,冂见 Delphi是一款高质量的软件。加 上各种高质量第三方代码,可复川代码库可达到几而万甚至千万行级代码。为软 件开发商节省了大量重复开发时间成本 本书内容以 Delphi7为蓝本,以最新的 Delphi版本作为补充,解释一些BUG 陷阱,并讲解一些非陷阱的知识点。由于版本差异,书里面的例子不一定全部正 确,请自行调试。 Delphi的陷阱主要来自: 1 Delphi自己版本的变化,在老的版木的意义和新的版木可能不同 2.一些入门书籍没冇深入探讨的讲解; 3.程序员没有认真阅读联机帮助手册; 4安装了版本不一致的第三方软件: 5网终上的资料很多没有注明算法或者代码适用的版本; 声明:本书起《 Delphi陷阱大全》这个名字,并非哗众取宠,也不是表小 Delph这个软件有多少BUG,而是我们常常看到的书籍,没有深入探讨一些问 题,导致我们许多学员学习到一些错误的知识。作者水平有限,写出这些文字, 希望大家能够共同进步,也欢迎 Dclphi的爱好者、程序员提出不同意见,促进 Delph开发者共同提高。我的Ma:1565498246qcom 或加入QQ群:341766l1 目录表 1.辨析Pos和 Ansi Pos函数 2 ansiquotedstr和 quotedstr区别 3. AllocHem和 GetMem函数区别 4对比, AnsiCompare FileName, samefilename,比较两个文件名 5对比 Ansilastchar,得到字符串最后一个宁符(没有非MBCS的版本) 6对比 Ansilowercase filename, LowerCase函数,转换到小写。 7对比, StrNextchat; nextchar得到下个字符指针,支持MBCS 8对比, Byte Type, StrByteType,查找字符串某个位置字符是什么字节类型 9对比 Byte To( harnden, ByteToCharLen,防止半个汉字,进行探测,用來截取字符串 10.对比, chartobyteindex, CharTo Byteler,也可以用来探测半个字符情况 1对比, charlength, strcharlength探测某个位置字符是单字节字符,还是双字节字符 12对比, streit, strbleft, ansileftstr区别和联系,取字符串左边若干字符 13对比, ansi Contains, AnsiContainstex是合字符串包含在另外一个字符串里面 14对比 AnsiEndsStr,一个字符串是否和另外一个字符串的尾巴相同,区分大小写,15对 比,^ nsi contains str,∧ nsicontains text和∧ nsiIndex str,^ nsilndex text,探测字符串在另外一个 符串中位置 16对比, Ansilndex str, Ansicontainsstr, Ansimatchstr:匹配字符串 17.对比, AnsimatchStr, Ansimatch Text,在字符数组屮,匹配,查找字符申 18对比, ansiMidstr, MidSt, midSt,取字符串中间串 19对比, AnsiReplace str, AnsiReplace Text, StringReplace替换字符串 20.字符(不是字节,反序算法, AnsiReversestring 21.对比, AnsiRightStr, RightBStr, Rightsin取字符串右边若十字符串 22.对比, Ansistartsstr, AnsiStarts text,Pos函数,取得字符串在是否是另外一个字符串中的廾始 23 Extractstrings函数陷阱 24应该用 quotedstr还是 ansiQuotedstr 25 Compare Text和 AnsiCompareStr函数 26.With语句陷阱 7TFom,TFom2陷阱 28 TDataModule陷阱 29. Lower Case Fnl AnsiLower Case 30 Uppercase FI Ansi UpperCase 31同样, AnsiUpperCaseFileName和 uppercase进行对比 32 Inttostr陷阱 33向后兼容函数或者过程列表 34Cci函数 5Foor函数陷阱 36BCD数据表示范围 37DⅠMOD过程 38Ceil和INT数区别 38Frac和INT函数 39 TStringList陷阱 40. ompare value函数比较浮点数 41. TimeStamp和Msqd的 Time Stamp的不同点 42 Hours Between /A Hour Span 43.字符串转换成 Boolean的自定义,如果不小心使用可能导致错误 44. Delphi肀的序列化与反序列化 45 Delphi的哈希表 46.另外一个第三方的快速哈希算法 47.XE中动态数组的错误忽略功能 48. Delph; Lazarus数组属性 49 Delphi同单元的类保护域的访问 50For循坏变量是否不可变 51Case语句是否可以用字符串作为判定变量 52 Delph程序的5种单元结构 53过程、函数、变量、属性之间的区分 54数组型属性和数组的不同点。 55默认数组属性和数组 56无法转换的 Tlist. last指针 57没有类型的参数 58 writeln不能支持的变量类型 59没有初始化的动态数组,例程 60.for循环变量是可以使用复杂变量? 61. Delphi的 Class, Object, Class(tobject别 62 Delphi2007新的类型 63 Delphi不支持的指针操 64 Unicode引起的问题 辨析Pos和 Ansipos函数 许多资料,包括万一的博客等都说 delphi的pos函数可以用在汉字的查找 这是叨显不对的,官方资料help里面叨显说了,pos函数没有按本地字符集 进行査找,很可能导致査找错误。如果不是 ascii字符集的字符串,必须用 antIpas函数 << Delphi函数大全>>也错了。至少是不完整的描述。 所谓本地宇符集就是MBCS(主要针对业洲的多字节字符集编码) procedure TForm1. ButtonlClick(Sender TObject) var s: Ansistring w: Widestring begin :=’bAc'; memo1. lines. add(inttostr(Pos ('A', s))) memol. lines. add(inttostr(Pos (A', s))) w. bac memo1. lines. add (inttostr(pos (A, s))) memo1. lines. add (inttostr(Pos ('A, w)) memo1. lines. add (inttostr(ansiPos (A, w))) memo1. lines. add(inttostr(ansiPos (A', w))) end 结果是 000 也就是说当原始数据是 ansistring并且包含的数据可能有MCS的字符的时候, 应该使用 anglOs 函数。 同理,其他类似函数有MBCS版本,都应该使用Ans版本。而如果是 Widestring, 或者确定原始数据里面不包含MBCS字符,就可以使用非Ansi版本。 但以上程序在 Delphi2010以后版本的结果是 0 0000 因为 delphi2010以后,默认的在ID输入的符串会尽量向 Widechar转换。 2. ansiquotedstr和 quotedstr区别 ansiquotedstr支持MBCS quotedstr不支持MBCS 但是山于汉字在 windows上只有$#80$40开始,而单引号才$#27,所以没有冲突, 可以认为二者一样,但使用其他国家语言就不一定正确。 3. Allochem和 GetMem数区别 A1 LoMem将会分配内存,并初始化为0释放使用 Freelem GetMem不会将标个字节初始化为#0,释放也用 freeMem 但是最好是用New, Dispose函数 但是New只能用在 REcord等大小固定的数据结构。 4.对比, Ans i comparefilename, same ilename,比较两个文件名 AnsiCompareFileName比较两个文件名 amefilename数和 ansicomparefilename柑似,但前者相同返回true,不同 返回叫 false, 后者相同返冋0,不同返回有2种情况 5.对比 Ansilast char,得到字符串最后一个字符(没有非ⅦBCS的版本) Ansilast Char得到字符串最后一个字符(不一定是字节,是MBCS的字符) 单字节字符集没有必要再弄个函数。 6.对比 Ansilowercasefilename, Lower case函数,转换刭小 Ansilowercasefilename得到文件名字的小写形式,也支持汉字(因为汉字的 半可能和大写重叠,被错误转换,比如侭字第2字节是字符B相同的) self. caption:= AnsilonercasefileName(A侭’) AnsiLowercaseFileName( ABB') 得到的结果是 侭abb self. caption:= Ansilower case(A)+’+ Lower case(A供’) 得到的结果是 但a俠 明显是错误的
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: Delphi陷阱大全.pdf
 输入关键字,在本站1000多万海量源码库中尽情搜索: