小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

xe unicode byte char函數(shù)與長度

 quasiceo 2013-01-11
ZeroMemory
CopyMemory

Copy
Move
Pos

Length
SetLength
  t:AnsiString;
  t2:WideString;

使用MidBStr

對于ansiString,Length長度基于字節(jié).無論2006還是xe.
Ansi前綴函數(shù)的都基于字符

在2006中.默認(rèn)字符是AnsiChar,
對于AnsiString類型的變量
MidStr    基于字符
Rightstr
Midstr

xe中默認(rèn)字符是WideChar
對于AnsiString類型的變量
Midstr  基于字節(jié)



t:='中國1';
  showMessage(inttostr(Length(t)));//5
顯然不能為3,否則,Setlength(3),輸入3個中文字符就越界了.前后不一致
AnsiLength(t) = 3

AnsiPos('1',t);//3基于字符
  showMessage(AnsiMidstr(t,2,2));//基于字符
  showMessage(Midstr(t,2,2));//基于字節(jié)            xe

 showMessage(inttostr(Length(t)));  //5          2006
 Rightstr(t,2); //基于字符                                   2006
  showMessage(Midstr(t,2,2));//基于字符            2006

    msg:string;

   msgW:widestring;

begin

   msg :='中文123123';

   msgW  := '中文123123';

Delete(msg,1,4);//結(jié)果是 msg='123123'

Delete(msgW ,1,2);//結(jié)果是 msgW ='123123'




t2:='中國1';
  showMessage(inttostr(Length(t2)));//3

delphi中如何將byte[]字節(jié)數(shù)組類型的數(shù)據(jù)轉(zhuǎn)化成string類型的字符串?dāng)?shù)據(jù)

B:array[0..15] of byte
S:string;

已知B,如何將B 轉(zhuǎn)化為S 然后輸出S

S := StrPas(@B);
記得B里要有 #0

For i:=low(b) to high(b) do
begin
  s:=s+char(b[i]);
end;

Move(b[0],s[1],Length(b));



在delphi2010中fillchar中的char還是按字節(jié)來做.

MyRec = record
    I: Integer;
    S: string;
    R: Real;
  end;

  PMyRec = ^MyRec;


 Rec := PRec^;

var
  PRec: PMyRec;
  Rec: MyRec;

CopyMemory(@Rec,PRec,Sizeof(MyRec));

需要清零的成員包括 string、動態(tài)數(shù)組類型、interface 等由 rtl 管理生存期的類型。因為不清零的話,這些個成員就是一個個野指 針,rtl 一跑就直接掛了。這里 TMyRec 里的 S 就是需要清零的成員,New 相當(dāng)于 GetMem+Initialize

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多