delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
这个STRING会结果显示什么 ? VCL组件开发及应用
http://www.delphi2007.net/DelphiVCL/html/delphi_20061224123020155.html
procedure   TForm1.Button1Click(Sender:   TObject);  
  var   s:   string[8]   ;  
  begin  
      s[0]   :=   'a'   ;  
      s[1]   :=   'b'   ;  
      s[2]   :=   'c'   ;  
      showmessage(s);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var   s:   string[8]   ;  
  begin  
      s[0]   :=   'a'   ;  
      s[1]   :=   'b'   ;  
      s[2]   :=   'c'   ;  
      s[3]   :=   'd'   ;  
      showmessage(s);  
  end;  
   
   
  初识DELPHI,有点晕

好问题。可能初学DELPHI的都会忽略这个里面的很多内涵。

var   s:   string[8]   ;  
  其内容是从s[1]开始的。  
  s[0]是字符串长度值。

1、S[0]   等同于SetLength(S,   Ord(S[0])   在你的例子中相当于SetLength(S,   97)  
  2、由于你没有对S做初始化,所以你的SHOWMESSAGE(S)会是这样的结果  
        bcd+随机的乱字符,并且显示的字符串长度是97  
 

不要把string   当char   str[x];  
  用

var   s:   shortString   ;  
  begin  
      s[0]   :=   'a'   ;  
      s[1]   :=   'b'   ;  
      showmessage(s)   ;  
      caption   :=   inttostr(length(s))   ;  
  end    
   
  结果相同     长度为97   Ord('a')  
   
  String   结构:AllocationSize|RefCount|Length|B|C|D|#0  
  ShortString   结构:|Length|B|C|D  
   
  不管怎么样   S[0]   都是指向   Length   ;  
   
  还有没有类似的题目,最近在打基础;  
   
  感觉写比较大的商务项目时,可以小心用变量,  
  而不用去了解这些底层,  
  直接用现有的类和结构,开发比较快速;  
  因为这些结构也挺多,挺复杂的;如   Variant   变体类型   ;  
  还有很多第三方控件要学习;  
   
  没有做过整套的软件   ;   不知道接下来要怎么走   ...  
 

我买的书是   D6   开发人员指南   是不是另外有一本D5   开发人员指南更好些;  
  第二章   Object   Pascal语言   就看了好几天了,还是挺难看懂的   ...

不错的帖子。

原来是这样呀,一直以为string[i]实际存放的是string[1..i]的内容。

还没结贴啊~

posted on 2008-11-18 14:34 delphi2007 阅读(131) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。