ʹÓÃDelphiÄÚÖú¯Êý¶ÁдINIÎļþ
ÀûÓÃWindows APIº¯ÊýWritePrivateProfileString ºÍGetPrivateProfileString¿É¶Ô.INIÎļþ½øÐжÁд²Ù×÷¡£Æäʵ£¬¶Ô.INIÎļþµÄ¶ÁдÍêÈ«¿ÉÒÔÀûÓÃDelphiµÄÄÚÖú¯ÊýÀ´ÊµÏÖ¡£ÏÂÃæ¾Í½éÉÜһЩ¶Ô.INIÎļþ¶ÁдʱÏà¹ØµÄÀ༰ÆäÊôÐÔ·½·¨¡£
1¡¢TIniFile¶ÔÏó
ÒÔDelphiÖУ¬¶¨ÒåÁËÒ»¸öTIniFile¶ÔÏ󣬽«.INIÎļþ·â×°ÔÚÆäÖУ¬²¢ÌṩһЩ·½·¨£¬×¨ÃÅÓÃÀ´¶ÔINIÎļþ½øÐжÁд²Ù×÷¡£Èç¹ûÔÚ³ÌÐòÖÐÒªÓõ½TIniFileÀà»òÆä·½·¨ÊôÐÔ£¬¾Í±ØÐëÔÚ³ÌÐòµ¥ÔªµÄusesÓï¾äÖÐÊÖ¹¤¼ÓÈë¶ÔIniFilesµ¥ÔªµÄÒýÓá£
2¡¢Create·½·¨
¸Ã·½·¨ÓÃÀ´´´½¨Ò»¸ö´¦ÀíINIÎļþµÄTIniFileÀàÐÍʵÀý¡£
·½·¨ÉùÃ÷£ºconstructor Create(const FileName:string);
²ÎÊý˵Ã÷£ºFileNameÖ¸Ã÷´ý´´½¨µÄINIÎļþµÄÎļþÃû£»
×¢ÊÍ£ºÔÚʹÓÃTIniFile¶ÔÏó֮ǰ£¬±ØÐëÏÈÓô˷½·¨´´½¨Ò»¸öINIÎļþµÄʵÀý¡£FileNameÖпÉÒÔ°üº¬Â·¾¶Ãû£¬È±Ê¡Ê±ÎªWindowsËùÔÚĿ¼£¨Ò»°ã¾ÍÊÇC:\windows,¶ÔÓÚWindows NTÀ´Ëµ£¬ÔòÒ»°ãÊÇc:\winnt)¡£ÓÃCreate·½·¨´´½¨µÄʵÀý£¬ÔÚʹÓÃÍêÖ®ºó£¬µ÷ÓÃFree·½·¨ÊÍ·ÅÄÚ´æ¡£
3¡¢ReadSection·½·¨
¸Ã·½·¨´ÓINIÎļþÖжÁ³öÖ¸¶¨¶ÎµÄËùÓÐ×Ó¼üÃû£¬²¢´æÈëStrings²ÎÊýÖ¸¶¨µÄ×Ö·û´®Áбí¶ÔÏóÖС£
·½·¨ÉùÃ÷£ºprocedure ReadSection(const Section:string; Strings:TStrings);
²ÎÊý˵Ã÷£ºSectionÖ¸Ã÷Òª¶ÁÈ¡¶ÎµÄ¶ÎÃû£»
StringsÖ¸Ã÷´æ·Å×Ó¼üÃûµÄ×Ö·û´®ÁÐ±í£»
×¢ÊÍ£ºReadSection·½·¨½ö¶ÁÈëÖ¸¶¨¶ÎµÄËùÓÐ×Ó¼üÃû£¬µ«²»¶ÁÈë×Ó¼üµÄÖµ¡£
4¡¢ReadSections·½·¨
¸Ã·½·¨´ÓINIÎļþÖжÁÈ¡ËùÓжÎÃû£¬²¢´æÈëStrings²ÎÊýÖ¸¶¨µÄ×Ö·ûÖÐÁбíÖС£
·½·¨ÉùÃ÷£ºprocedure ReadSections(Strings:TStrings);
²ÎÊý˵Ã÷£ºStrings²ÎÊýÖ¸Ã÷´æ·Å¶ÎÃûµÄ×Ö·û´®ÁÐ±í£»
×¢ÊÍ£ºReadSections·½·¨½«INIÎļþÖÐËùÓжεĶÎÃû¶Á³ö£¬´æÈëÒ»Ö¸¶¨µÄ×Ö·û´®ÁбíÖУ¬´Ë×Ö·û´®Áбí¿ÉÒÔÖ±½ÓʹÓÃij¸öÁбí¿òµÄItemsÊôÐÔ¡£
5¡¢ReadSectionValues·½·¨
¸Ã·½·¨´ÓINIÎļþÖжÁÈëÖ¸¶¨¶ÎµÄËùÓÐ×Ó¼üÃû¼°Æä¼üÖµ£¬²¢´æÈëStrings²ÎÊýÖ¸¶¨µÄ×Ö·û´®ÁбíÖС£
·½·¨ÉùÃ÷£ºprocedure ReadSectionValues(const Section:String; Strings:TStrings);
²ÎÊý˵Ã÷£ºSectionÖ¸Ã÷Òª¶ÁÈ¡¶ÎµÄ¶ÎÃû£»
StringsÖ¸Ã÷´æ·Å¶ÎÃûµÄ×Ö·û´®ÁÐ±í£»
×¢ÊÍ£ºReadSectionValues·½·¨ÓëReadSection·½·¨µÄÇø±ðÔÚÓÚºóÕß½ö¶ÁÈë×Ó¼üÃû£¬ÃæÇ°Õß³ýÁ˶ÁÈ¡×Ó¼üÃûÖ®Í⣬»¹¶ÁÈ¡¸Ã×Ó¼ü¶ÔÓ¦µÄ¼üÖµ¡£¶ÁÈëµÄ×Ó¼üÃû¼°¼üÖµÔÚ×Ö·û´®ÁбíÖеĴæ·Å·½·¨ÓëÔÚÎļþÖеÄÏÔʾ·½·¨Ò»Ö£¬¼´"Key=Value"ÐÎʽ¡£
6¡¢EraseSection·½·¨
¸Ã·½·¨É¾³ýINIÎļþÖÐ
Ïà¹ØÎĵµ£º
Delphi²Ù×÷×¢²á±í²½ÖèÈçÏ£º
-------------------------------------
1£©ÔÚUsesÖÐÌí¼ÓRegistryµ¥Ôª£»
2£©ÉùÃ÷TRegistry¶ÔÏó£»
3£©´´½¨TRegistry¶ÔÏó£»
4£©Ö¸¶¨¸ù¼ü£»
----------------try------------------
5£©´ò¿ªÐèÒª²Ù×÷µÄÖ÷¼ü£»
6£©¶Áд²Ù×÷£»
7£©±£´æ²¢¹Ø±ÕÖ÷¼ü£»
--------------finally----------------
......
ÔÚDelphiÓ¦ÓóÌÐòÖÐʹÓÃDLL
¡¡¡¡Delphi²»½ö¿Éµ÷ÓÃC£«£«²úÉúµÄDLLÄ£¿é£¬Í¬ÑùC£«£«³ÌÐòÒ²¿Éµ÷ÓÃDelphiËù²úÉúµÄDLL²¿¼þ¡£ÕâÑù½»»¥µ÷Óã¬ÎÞÐëÖØ¸´¿ª·¢£¬´ó´óËõ¶ÌÁËÉú²úÖÜÆÚ¡£
¡¡¡¡DelphiÓëVisualBasic¡¢VisualFoxProµÈÈí¼þÒ»Ñù£¬ÊôÓÚRAD¹¤¾ß£¨¿ìËÙÓ¦Óÿª·¢¹¤¾ß£©¡£ÊʺϿª·¢32λ»ò16λ£¯32λ»ìºÏÓ¦ÓóÌÐò¡£DelphiËùÊ¹Ó ......
×¢£º ʹÓôíÎ󣬻òÕßÔڸüӵĵط½Ã»Óмӣ¬¿ÉÄÜ»á³öÏÖ"privileged instruction"´íÎ󣬻òÕßµØÖ··ÃÎÊ´íÎó¡£
³£¼ûµÄµ÷ÓùßÀýÓÐregister, pascal, cdecl, stdcall, safecall¡£º¯ÊýµÄµ÷ÓùÜÀí¾ö¶¨Á˲ÎÊýÈçºÎ´«µÝ¸ø×Ó¹ý³Ì£¬²¢´Ó¶ÑÕ»ÖÐÍ˳ö£¬ÒÔ¼°¼Ä´æÆ÷ÔÚ²ÎÊý´«µÝÖеÄʹÓ㬴íÎóºÍÒì³£µÄ´¦Àí¡£DelphiÖÐĬÈϵĵ ......
ÉèÓÐÒÔÏÂÈý¸ö±äÁ¿£º
var
s:string;
p:pchar;
a:array[1..20] of char;
ÄÇôÈýÕßÖ®¼äµÄת»»ÈçÏ£º
1¡¢×Ö·û´®µ½PChar
p:=PChar(s);
2¡¢PCharµ½×Ö·û´®
s:=p;
3¡¢PCharµ½×Ö·ûÊý×é
StrCopy(@a,p);
4¡¢×Ö·ûÊý×éµ½PChar
......
DelphiÖÐÓÐÒ»¸öÏß³ÌÀàTThreadÊÇÓÃÀ´ÊµÏÖ¶àÏ̱߳à³ÌµÄ£¬Õâ¸ö¾ø´ó¶àÊýDelphiÊé½å¶¼ÓÐ˵µ½£¬µ«»ù±¾É϶¼ÊǶÔTThreadÀàµÄ¼¸¸ö³ÉÔ±×÷Ò»¼òµ¥½éÉÜ£¬ÔÙ˵Ã÷Ò»ÏÂExecuteµÄʵÏÖºÍSynchronizeµÄÓ÷¨¾ÍÍêÁË¡£È»¶øÕâ²¢²»ÊǶàÏ̱߳à³ÌµÄÈ«²¿£¬ÎÒд´ËÎĵÄÄ¿µÄÔÚÓÚ¶Ô´Ë×÷Ò»¸ö²¹³ä¡£
Ï̱߳¾ÖÊÉÏÊǽø³ÌÖÐÒ»¶Î²¢·¢ÔËÐеĴú ......