谈笑有鸿儒,往来无白丁

在恰当的时间、地点以恰当的方式表达给恰当的人...  阅读的时候请注意分类,佛曰我日里面是谈笑文章,其他是各个分类的文章,积极的热情投入到写博的队伍中来,支持blogjava做大做强!向dudu站长致敬>> > 我的微博敬请收听
1、sql := 'SELECT To_char(SYSDATE,'+ QuotedStr('yyyy-MM-dd hh:mm:ss')+') as d FROM Dual';
      QuotedStr : 此函数的作用保证数据库里面执行的SQL不会因为‘,等特殊字符而出错;
      Dual          : oracle数据库里面的函数。
2、          Application.ProcessMessages;
这个语句的作用很大啊,工控里面有专门负责数据采集的程序,时时的需要采集数据,里面要是不加上这么一句话你的前台展示,就会很难看,鼠标点击下去,老半天没有反应。
3、Delphi--Stream和Variant的转化网上广为流传的两个函数,确实好用。
procedure VariantToStream (const v : OleVariant; Stream : TMemoryStream);
var
  p : pointer;
begin
  Stream.Position := 0;
  Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound (v, 1) + 1;
  p := VarArrayLock (v);
  Stream.Write (p^, Stream.Size);
  VarArrayUnlock (v);
  Stream.Position := 0;
end;

procedure StreamToVariant (Stream : TMemoryStream; var v : OleVariant);
var
  p : pointer;
begin
  v := VarArrayCreate ([0, Stream.Size - 1], varByte);
  p := VarArrayLock (v);
  Stream.Position := 0;
  Stream.Read (p^, Stream.Size);
  VarArrayUnlock (v);
end;


4、这个函数也是非常镇的,

function ByteType(const S: string; Index: Integer): TMbcsByteType;
IsDBCSLeadByte
告诉你一个非常有用的函数。

bytetype  它可以判断一个字符串中,某个 Char 是单个字母,还是双字节的前一位或
后一位。
mbSingleByte 单字母
mbLeadByte 双字节第一位
mbTrailByte 双字节第二位

在copy(Str,1,12)中结果有个全角的8,,,过不去了居然quotedstr()的结果也出现了?我怎么办

function TFrmMain.procQJWT(olds: String): String;
var
  tmp : string;
begin
  tmp := Trim(olds);

  Result := tmp; 
  if Length(tmp)>12 then
  begin
    //是单个字符
    if  ByteType(tmp,12)=mbLeadByte then
      result := Copy(tmp,1,11)
    else
      result := Copy(tmp,1,12);
  end;
end;

写了一个函数就解决战斗了!

posted on 2006-12-20 15:07 坏男孩 阅读(1257) 评论(3)  编辑  收藏 所属分类: DELPHI

FeedBack:
# re: DELPHI常用的流水账!不断更新
2006-12-21 10:31 | 嘎崩豆
嘻嘻,delphi 上手还是很不错的,学了一段时间,项目做完不用偶又忘了。  回复  更多评论
  
# re: DELPHI常用的流水账!不断更新
2006-12-22 14:42 | ghost
我一直用QuotedStr
不光不会出错,还美观大方,呵呵  回复  更多评论
  
# re: DELPHI常用的流水账!不断更新
2007-07-18 09:13 | 老鼠灰灰
现在刚刚开始学习delphi 技术,对其中的控件的一些使用还不是很熟。正在努力。我会常常关注的。嘻嘻。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: