delphi TStringListµÄÓ÷¨
delphi TStringListµÄÓ÷¨
TStringsÊÇÒ»¸ö³éÏóÀ࣬ÔÚʵ¼Ê¿ª·¢ÖУ¬ÊdzýÁË»ù±¾ÀàÐÍÍ⣬ӦÓõÃ×î¶àµÄ¡£
³£¹æµÄÓ÷¨´ó¼Ò¶¼ÖªµÀ£¬ÏÖÔÚÀ´ÌÖÂÛËüµÄһЩ¸ß¼¶µÄÓ÷¨¡£
ÏȰÑÒªÌÖÂ۵öÊôÐÔÁгöÀ´£º
1¡¢CommaText
2¡¢Delimiter & DelimitedText
3¡¢Names & Values & ValuefromIndex
ÏÈ¿´µÚÒ»¸ö£ºCommaText¡£ÔõôÓÃÄØ£¿ÓôúÂë˵»°£º
const
constr :String = 'aaa,bbb,ccc,ddd';
var
strs :TStrings;
i :Integer;
begin
strs := TStringList.Create;
strs.CommaText := constr;
for i := 0 to Strs.Count-1 do
ShowMessage(Strs[i]);
end;
Ö´ÐÐÁËÕâ¶Î´úÂëºó£¬¿ÉÒÔ¿´µ½ShowMessageÏÔʾ³öÀ´µÄ·Ö±ðÊÇ£ºaaa bbb ccc ddd¡£
Ò²¾ÍÊÇ˵£¬strs.CommaText := constrÕâÒ»¾äµÄ×÷Ó㬾ÍÊǰÑÒ»¸ö×Ö·û´®ÒÔ','Ϊ·Ö¸î·û£¬·Ö¶ÎÌí¼Óµ½TStringsÖС£
ÄÇôÈç¹û²»ÊÇÒÔ','À´·Ö¸î£¬ÓÖ¸ÃÔõô×öÄØ£¿ÏÖÔÚ¿´µÚ¶þ¸öÀý×Ó¡£Ê¹ÓÃDelimiterºÍDelimitedText¡£
const
constr :String = 'aaa\bbb\ccc\ddd';
var
strs :TStrings;
i :Integer;
begin
strs := TStringList.Create;
strs.Delimiter := '\';
strs.DelimitedText := constr;
for i := 0 to Strs.Count-1 do
ShowMessage(Strs[i]);
end;
¿ÉÒÔ¿´µ½£¬ ÏÔʾµÄЧ¹ûºÍµÚÒ»¸öÀý×ÓÊÇһģһÑùµÄ¡£½âÊÍһϣº
DelimiterΪ·Ö¸ô·û£¬Ä¬ÈÏΪ£º','¡£DelimitedText¾ÍÊǰ´DelimiterΪ·Ö¸ô·ûµÄÒ»¸ö´®£¬µÃµ½¸³Öµºó»Ø°ÑÕâ¸ö×Ö·û´®°´DelimiterµÄ×Ö·ûÌí¼Óµ½TStringsÖС£
˵µ½ÕâÀÓÐÏëÆðÒ»¸öÊôÐÔ£¬QuoteChar¡£ÆäĬÈÏֵΪ£º'"'£¨²»°üÀ¨µ¥ÒýºÅ£©
ÓкÎÓÃÄØ£¿¿´Àý×Ó£º
const
constr :String = '"aaa"\"bbb"\"ccc"\"ddd"';
var
strs :TStrings;
i :Integer;
begin
strs := TStringList.Create;
strs.Delimiter := '\';
strs.DelimitedText := constr;
for i := 0 to Strs.Count-1 do
ShowMessage(Strs[i]);
end;
ÏÔʾ³öÀ´µÄÈÔÈ»ÊÇaaa bbb ccc ddd¡£ÎªÊ²Ã´²»ÊÇ£º"aaa" "bbb" "ccc" "ddd"ÄØ£¿
ÔÙÀ´¿´Ò»¸öÀý×Ó£º
const
constr :String = '|aaa|\|bbb|\|ccc|\|ddd|';
var
strs :TStrings;
i :Integer;
begin
strs := TStringList.Create;
strs.Delimiter := '\';
strs.QuoteChar := '|';
strs.DelimitedText := constr;
for i := 0 to Strs.Count-1 do
ShowMessage(Strs[i]);
end;
ÏÔʾ³öÀ´µÄÓÖÊÇaaa bbb ccc
Ïà¹ØÎĵµ£º
procedure TForm1.Button3Click(Sender: TObject);
begin
//ÏÔʾ´´½¨µÄÊý¾Ý¼¯: dbgrid->datasource->clientdataset
//Èç¹ûÊÖ¹¤¿ØÖÆdbgridÏÔʾ¿í¶È,dbgridÓÒ¼ü´´½¨Á½¸ö×Ö¶Îaa,bb,·Ö±ðÉèÖÿí¶È¼´¿É
cds1.FieldDefs.Add('aa',ftString,40);
......
procedure mc_SplitStr(sourStr:String;splitChar:String;desLst:TStringList);
var
tmpStr:String;
sValue:String;
iStart,iPos:Integer;
begin
try
desLst.Clear; //ºÜÖØÒª£¬·ñÔò£¬»áÒ» ......
VCLÖеÄShapeÊǸöºÜ²»´íµÄ¿Ø¼þ£¬¿ÉÒÔÑ¡Ôñ¼¸ÖÖͼÐΣ¬ÒÔÂú×ãÎÒÃǵÄÐèÇ󣬵«ÓÐʱºò¾ÍÊǾõµÃËüµÄ¿ÉѡͼÐÎÉÙÁËÒ»µã£¬±ÈÈçÎÒÃÇÏëÒªÒ»¸öÈý½ÇÐΣ¬ËüȴûÓС£ÓÚÊǾÍÏëµ½À´À©Õ¹Ò»ÏÂÕâ¸ö¿Ø¼þ£¬ÃûΪShapeEx¡£ÆäʵÀ©Õ¹µÄ¹¦Äܲ»¶à£¬Ö»ÊÇÔö¼ÓÁËһЩͼÐΡ£¶øÀàÒ²²¢²»ÊǼ̳Ð×ÔTShape£¬¶øÊǼ̳Ð×ÔTGraphicControl£¬ÕâÑù¿ÉÒÔÈÃÎÒÃdz¹µ×¿´¿´Í¼ÐÎ ......
¸ÅÒª
×ÔÈ¥ÄêCodeGear±»Ó¢°Í¿¨µÏŵ£¨Embarcadero Technologies£©ÊÕ¹ººó£¬´ó¼Ò¶ÔDelphiµÄδÀ´·¢Õ¹·Ç³£¹ØÐÄ¡£½üÈÕ£¬InfoQÖÐÎÄÕ¾ÓÐÐÒ¶ÔDavid I½øÐÐÁ˶À¼Òר·Ã£¬ÒÔÁ˽â¸ü¶à¹ØÓÚDelphiµÄÏà¹ØÐÅÏ¢¡£
¸öÈ˼ò½é
David Intersimone£¨¼ò³ÆDavid I£©£¬Ó¢°Í¿¨µÏŵ¸ºÔ𿪷¢Õß¹ØÏµµÄ¸±×ܲúÍÊ×ϯÐû´«¹Ù£¨Chief Evangelist£©¡£David¸º ......
×÷Õß: yangyxd ×ªÔØÇë×¢Ã÷³ö´¦ http://hi.baidu.com/yangyxd 2009-3-12
ÂÛ̳ÀïÓйØÓÚHOOK APIµÄÌù×Ó£¬ µ«ÆäʵÏÖÔÚ·½Ê½ÏÔʾµÃÂé·³£¬ ÆäʵÏÖÔÚÀ¹½ØAPIÒ»°ã²»ÓÃÄÇÖÖ·½Ê½£¬ ´ó¶¼²ÉÓÃinline Hook API·½Ê½¡£ÆäʵҲ¾ÍÊÇÖ±½ÓÐÞ¸ÄÁËÒªÀ¹½ØµÄAPIÔ´ÂëµÄÍ·²¿£¬ÈÃËüÎÞÌõ¼þÌø×ªµ½ÎÒÃÇ× ......