VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

¦bVisual FoxPro ¤¤°ÊºA­×§ï¥´¦L¯È±i¤j¤p[Âà©«]

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤é ¤­¤ë 04, 2003 2:36 pm    ¤å³¹¥DÃD: ¦bVisual FoxPro ¤¤°ÊºA­×§ï¥´¦L¯È±i¤j¤p[Âà©«] ¤Þ¨¥¦^ÂÐ

¦bVisual FoxPro 6¤¤°ÊºA­×§ï¥´¦L¯È±i¤j¤p
§@ªÌ¡G§õ§Í
--------------------------------------------------------------------------------

·íFoxPro±q2.6¤É¯Å¨ìVisual FoxProªº®É­Ô¡A¨Ï¥ÎFoxProªºµ{¦¡®v¤]±q­±¦V¹Lµ{ªº®É¥N¸ó¤J¤F­±¦Vª«¥óªº®É¥N¡CVisual FoxPro¥i­É§U¤u¨ã±ø¡Bª«¥ó¡B¥iµø±±¨î¶µ¨Ó¦Û°Ê§¹¦¨¤¶­±ªº³]­p¨Ã°õ¦æ¦UºØ¥ô°È¡A¦P®É¤£Ä묹¥ô¦ó¸ê®Æ®w©Ê¯à¡C¤£¦A¥u³q¹L¥N½X¨Ó§¹¦¨¥ô°È¡A·sÀô¹ÒÅý§Ú­Ìª½±µ¹Ï§Î¤Æªº¾Þ§@ÀÉ¡Bªí¡Bª«¥ó©MÃþ¡C³o¬O¤@³õ¦h»ò°¶¤jªº­²©R°Ú¡I¦ý¬O§Ú­Ì«Ü§Öµo²{¡A¥¦­²±¼¤F¤@­Ó«Ü­«­nªºªF¦è¡A¨º´N¬O¹ï¦Lªí¾÷ªº±±¨î¡C§Ú­Ì¥¢¥h¤F¹ï¦Lªí¾÷ªºª½±µ±±¨î¯à¤O¡A¥u¯à³q¹L¦Lªí¾÷ÅX°Êµ{¦¡¶¡±µªº¨Ï¥Î¦Lªí¾÷¡A´N³sFoxProªº§C¯Å¨ç¼ÆFopen()¤]¥u¯à¥´¶}¤å¥ó©M¦ê¤f¡A¥¢¥h¤F¥´¶}¨Ã¤fªº¯à¤O¡A§ó­n©Rªº¬O³q¹L¦Lªí¾÷ÅX°Êµ{¦¡¦bWindows¤¤¦C¦L¬O¥H­¶¬°³æ¦ì¡A¥´¤@¦æ¦r¤]­n¨«¤@­¶¡A¹ê¦b¤£²n¡C
«ç»ò¿ì©O¡A§Ú¨ìºô¤WÂà¤F¤@°é¡A¦bVisual FoxPro½sµ{½×¾Â¤¤µo²{´£°Ý³Ì¦hªº°ÝÃD¬O¦C¦Lªº°ÝÃD¡A¨ä¤¤³Ì¦hªº¤S¬O¦bWindows¤¤¦Lªí¾÷°e¯È¥H­¶¬°³æ¦ìªº°ÝÃD¡A«Ü¦h¥ÎVisual FoxPro½s¼g¶W¥«POS¨t²Îªººô¤Í¡A³£¬°µLªk±±¨î¤p²¼ªº°e¯Èªø«×¦Ó­W´o¡CÁöµM¦bºô¤W¨S¦³§ä¨ìµª®×¡A¦ý¤]µo²{¤F¤@¨Ç½u¯Á¡A¦³¤H¦b¥H100¤¸ªº»ù®æ°Â°â¤@­Ó¸Ñ¨M³o­Ó°ÝÃDªº³nÅé¡A§Ú·í¤F¸Õ¥Îª©¬Ý¤F¤@¤U¡Aµo²{³o­Ó³nÅé¬O¥ÎVisual FoxPro½s¼gªº¡A³o»¡©úVisual FoxPro¦³¯à¤O¸Ñ¨M³o­Ó°ÝÃD¡C¦ý¬O100¤¸¤Ó¶Q¤F¦pªG20¤¸ªº¸Ü§Ú·|¦Ò¼{¶R¤@®M¡C³q¹L¬ã¨s¸Õ¥Îª©§Úµo²{¸Ó³nÅé­×§ïªº¬O¦Lªí¾÷ªº¦Û©w¸q¯Èªº¤j¤p¡A¦Lªí¾÷ªº³]¸m³£¦s¦bWindowsªºµù¥UªíùØ¡AÁöµM­×§ïµù¥Uªí¬O¤@±ø¤ñ¸û¦MÀIªº¸ô¡A¦ý§Ú¥²¶·¨«¤U¥h¡C
µù¥Uªí¤Ó¤j¤F¡A§Ú¥J²Ó§ä¤F«Üªø®É¶¡¡A³Ì«áÂê©w¦b¡§HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Control\Print\Printers\¡¨¡A¦b³o­ÓÁä¤U­±¦³§Ú¦w¸Ëªº©Ò¦³¦Lªí¾÷ªº¦W¦r¡C§Ú¸Õ³o­×§ï¡§Epson LQ-1600KII¡¨¦Û©w¸q¯Èªº¤j¤p¡A¥u¦³¡§Default DevMode¡¨ªºÁä­Èµo¥Í¤FÅܤơC³o­ÓÁ䪺­È«Üªø¡A¦pªG¤j®a·P¿³½ì¥i¥H¦C¦L¥X¨Ó¬Ý¡A§Ú³oùØ´N¬Ù²¤¤F¡C³o­ÓÁ䪺­È¬O¥H¤G¶i¦ì¤è¦¡¦s©ñªº¡A¦C¦L¥X¨Óªº¬O16¶i¨îªº§Î¦¡¡A¸g¹L¥J²Ó¹ï·Óµo²{²Ä48¹ï¦Ü²Ä52¹ïµo¥Í¤FÅܤơC¶i¤@¨B¬ã¨sµo²{²Ä48¹ï¬°¡§01¡¨®É¦Lªí¾÷¬O¦Û©w¸q¯È¡A²Ä49¹ï©M²Ä50¹ï°O¿ýªº¬O¥´¦L¯Èªºªø«×¡A²Ä51¹ï©M²Ä52¹ï°O¿ýªº¬O¥´¦L¯Èªº¼e«×¡C¦pªG³]¸mªø«×¬°1000®É¡]0.1²@¦Ì¡^²Ä49¹ï¬°¡§E8¡¨¡B²Ä50¹ï¬°¡§03¡¨¡A¹ê»Ú¤W1000Âà´«¬°16¶i¨îÀ³¸Ó¬°3E8¡A³oùؤϤF­Ó¡]³o¬O·F¶Ü¡A¤£²n¡I¡^¡C§Ú¤S¸Õ¤F¨ä¥L´XºØ¤S¦Û©w¸q¯Èªº¦Lªí¾÷µ²ªG¬Û¦P¡C¦n¤F¡A²{¦b§Ú­Ìª¾¹D¤F¥´¦L¯È¤j¤pªº¦s©ñ¦aÂI¡A¤U­±¥i¥H¶}©l¬ã¨s¦p¦ó­×§ï¥¦­Ì¤F¡C
Visual FoxPro¥»¨­¨S¦³­×§ïµù¥Uªíªº¯à¤O¡A»Ý­n½Õ¥ÎWindowsªºAPI¨ç¼Æ¨Ó­×§ï¡C­×§ïªº¨BÆJ¬O³o¼Ëªº¡G­º¥ýŪ¨ú¡§HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Control\Print\Printers\Default DevMode¡¨ªºÁä­È¡A¥Ñ©ó±o¨ìªº¦r¦ê¦³«Ü¦h¤£¥iÅã¥Ü¦r¤¸¡A©Ò¥H»Ý­n¥Ñ¤G¶i¦ìÂà´«¬°16¶i¨î¡AÂà´««á±o¨ìªº¦r¦êÀ³»P¦bµù¥Uªí½s¿è¾¹¡]RegEdit.exe¡^¤¤¦C¦LªºÁä­È¤@­P¡AµM«á¥Î16¶i¨îªí¥Üªº¥´¦L¯Èªºªø«×©M¼e«×´À´«¬ÛÀ³¦ì¸mªº¦r¤¸¡A³Ì«á¦A¥Ñ16¶i¨îÂà´«¨ì10¶i¨î¡AÂà´«¬°10¶i¨î®É±o¨ìªº¬OÀ³¦^¼gµù¥Uªíªº¦r¤¸ªºASCII½X¡A¦A¥ÎCHR¡]¡^¨ç¼ÆÂà´««á§Y¥i¦^¼gµù¥Uªí¡C¨ì¤F³oùØÁÙ¤£ºâ§¹¡A¦b­×§ïµù¥Uªí¥H«áÁÙ­n­×§ï³øªíÀÉ¡CVisual FoxPro ªº³øªíÀɹê»Ú¤]¬O¤@­Óªí¡A¥i¥H¥ÎUse©R¥O¥´¶}¡AÄæ¦ìTag2©Mexpr»Ý­n°µ¬ÛÀ³§ó§ï¡C¦b³oùئ³¤@ÂI­n´£¿ô¤j®a¡A¬JµM­n­×§ï³øªíÀÉ¡A¨º»ò³øªíÀÉ´N¤£¯à½sĶ¶i¥i°õ¦æÀÉ¡A¥²¶·³æ¿W»P½sĶ«áªºµ{¦¡¤@°_¥´¥]µo§G¡C
§Ú±N¸Óµ{¦¡°µ¦¨¤@­Ó¨ç¼Æ¨Ñ¤j®a½Õ¥Î¡A¦pªG­×§ï¦¨¥\¨ç¼Æªð¦^.T.¡A§_«h¬O.F.¡C³Ì§xÃøªº¬O´M§äŪ¨ú©M¦^¼gµù¥Uªí¤G¶i¦ìÁä­Èªº¨ç¼Æ¡A§Ú¦bºô¤W¬d¾\¤F«Ü¦h¸ê®Æ¡A¨S¦³µo²{¦p¦óŪ¨ú¤G¶i¦ì¸ê®Æªº¤å³¹¡A³Ì«á¬O±q·L³nºô¯¸¤W·í¤F¤@­ÓŪ¨ú¤å¥»Ãþ«¬Áä­Èªº¨ç¼Æ¡A¸g¸ÕÅçµo²{·íREG_BINARY=1®É¸Ó¨ç¼Æ¥i¥HŪ¨ú»P¦^¼g¤å¥»Ãþ«¬ªºÁä­È¡AREG_BINARY=3®É´N¥i¥HŪ¨ú»P¦^¼g¤G¶i¦ìªºÁä­È¡C¬°¤FÁקK¤£¥²­nªº³Â·Ð¡A§Ú¦b³o­Ó¨ç¼Æ¤¤¨S¦³¥[¤J³]¸mÀq»{¥´¦L¯È¬°¦Û©w¸q¯Èªº¥\¯à¡A½Ð¤j®a³Ð«Ø³øªíÀɮɱN³øªíÀɳ]¸m¬°¦Û©w¸q¯È¡C§Ú¥u¬O¦bWin98©MWinMe¤¤°µ¤F´ú¸Õ¡A½Ð¤£­n¦b¨ä¥L§@·~¨t²Î¤¤¨Ï¥Î¡C§Ú¨S¦³¹Á¸Õ­×§ï¨S¦³¦Û©w¸q¯È±i³]©wªº¦Lªí¾÷¡A½Ð¤j®a¨Ï¥Î¤§«e½T»{§A¨Ï¥Îªº¦Lªí¾÷¥i¥H³]¸m¦Û©w¸q¯È±i¡C¦p¦ó½Õ¥Î¥»¤å©Òªþªº¨ç¼Æ¦³»¡©ú¡A³oùؤ£¦AÂØ­z¡C
¡@
ªþ®Ú·½µ{¦¡¡G
¡@
*½Õ¥Î®æ¦¡¡GPrint_Page(Print_name,Hight,Width)
*Print_name¡G¦bµù¥Uªí¤¤¦Lªí¾÷ªº¦WºÙ¡A¦p"Epson LQ-1600KII"¡B"Epson LQ-300K",¥²¶·¬O¦r¦ê
*Hight¡G¥´¦L¯Èªºªø«×¡A¨ú­È½d³ò¨Ì¾Ú¦Lªí¾÷ªº½d³ò¡A¥²¶·¬O¼Æ¦r
* Epson LQ-1600KIIªº¨ú­È½d³ò¡G127--23119¡]³æ¦ì¡G0.1²@¦Ì¡^
*Width¡G¥´¦L¯Èªº¼e«×¡A¨ú­È½d³ò¨Ì¾Ú¦Lªí¾÷ªº½d³ò¡A¥²¶·¬O¼Æ¦r
* Epson LQ-1600KIIªº¨ú­È½d³ò¡G127--4191¡]³æ¦ì¡G0.1²@¦Ì¡^
¡@
FUNCTION Print_Page
PARAMETERS Print_Name, _Hight, _Width
¡@
#DEFINE HKEY_LOCAL_MACHINE -2147483646
¡@
LOCAL nKey, cSubKey, cvalue, cvalueRead, lSuccess, cvalueToWrite, H_Width, H_Hight
nKey = HKEY_LOCAL_MACHINE
cvalue = "Default DevMode"
¡@
cSubKey = "System\CurrentControlSet\Control\Print\Printers\"+Print_Name
H_Width = IIF(LEN(Dec10To16Hex(_Width))=3,"0"+Dec10To16Hex(_Width),Dec10To16Hex(_Width))
H_Width = SUBSTR(H_Width,3,2)+SUBSTR(H_Width,1,2) &&¨ú±o16¶i¨îªº¼e«×­È
H_Hight = IIF(LEN(Dec10To16Hex(_Hight))=3,"0"+Dec10To16Hex(_Hight),Dec10To16Hex(_Hight))
H_Hight = SUBSTR(H_Hight,3,2)+SUBSTR(H_Hight,1,2) &&¨ú±o16¶i¨îªºªø«×­È
¡@
cvalueRead = ReadREG_SZ(nKey, cSubKey, cvalue)
IF (EMPTY(cvalueRead)) THEN
RETURN(.F.) &&Ūµù¥Uªí¿ù»~
ELSE
lenght = LEN(cvalueRead)
cRetvalue = SPACE(0)
FOR i=1 TO lenght
cRetvalue = cRetvalue+BinaryToChar(SUBSTR(cvalueRead,i,1))
ENDFOR
ENDIF
¡@
cRetvalue = STUFF(cRetvalue,93,4,"0001") &&³]¸mÀq»{¯È±i¬°¦Û©w¸q¯È
cRetvalue = STUFF(cRetvalue,97,8,H_Hight+H_Width) &&³]¸m¯È±iªºªø«×¬°2000,¼e«×¬°1000
¡@
lenght = LEN(cRetvalue)/2
Binarychar = SPACE(0)
FOR k=1 TO lenght
Binarychar = Binarychar+CHR(Hex16To10Dec(SUBSTR(cRetvalue,(k-1)*2+1,2)))
ENDFOR
¡@
cvalueToWrite = Binarychar
¡@
lSuccess = WriteREG_SZ(nKey, cSubKey, cvalue, cvalueToWrite)
IF (lSuccess) THEN
RETURN(.T.) &&³]¸m¦¨¥\
ELSE
RETURN(.F.) &&³]¸m¥¢±Ñ
ENDIF
RETURN
¡@
FUNCTION ReadREG_SZ
* This function reads a REG_SZ value from the registry. If successful,
* it will return the value read. If not successful, it will return an empty string.
PARAMETERS nKey, cSubKey, cvalue
* nKey The root key to open. It can be any of the constants defined below.
* #DEFINE HKEY_CLASSES_ROOT -2147483648
* #DEFINE HKEY_CURRENT_USER -2147483647
* #DEFINE HKEY_LOCAL_MACHINE -2147483646
* #DEFINE HKEY_USERS -2147483645
* cSubKey The SubKey to open.
* cvalue The value that is going to be read.
¡@
* Constants that are needed for Registry functions
#DEFINE REG_BINARY 3
¡@
* WIN 32 API functions that are used
DECLARE INTEGER RegOpenKey IN Win32API ;
INTEGER nHKey, STRING @cSubKey, INTEGER @nResult
DECLARE INTEGER RegQueryvalueEx IN Win32API ;
INTEGER nHKey, STRING lpszvalueName, INTEGER dwReserved,;
INTEGER @lpdwType, STRING @lpbData, INTEGER @lpcbData
DECLARE INTEGER RegCloseKey IN Win32API INTEGER nHKey
¡@
* Local variables used
LOCAL nErrCode && Error Code returned from Registry functions
LOCAL nKeyHandle && Handle to Key that is opened in the Registry
LOCAL lpdwvalueType && Type of value that we are looking for
LOCAL lpbvalue && The data stored in the value
LOCAL lpcbvalueSize && Size of the variable
LOCAL lpdwReserved && Reserved Must be 0
¡@
* Initialize the variables
nKeyHandle = 0
lpdwReserved = 0
lpdwvalueType = REG_BINARY
lpbvalue = ""
¡@
nErrCode = RegOpenKey(nKey, cSubKey, @nKeyHandle)
* If the error code isn't 0, then the key doesn't exist or can't be opened.
IF (nErrCode # 0) THEN
RETURN ""
ENDIF
¡@
lpcbvalueSize = 1
* Get the size of the data in the value
nErrCode=RegQueryvalueEx(nKeyHandle, cvalue, lpdwReserved, @lpdwvalueType, @lpbvalue, @lpcbvalueSize)
¡@
* Make the buffer big enough
lpbvalue = SPACE(lpcbvalueSize)
nErrCode=RegQueryvalueEx(nKeyHandle, cvalue, lpdwReserved, @lpdwvalueType, @lpbvalue, @lpcbvalueSize)
¡@
=RegCloseKey(nKeyHandle)
IF (nErrCode # 0) THEN
RETURN ""
ENDIF
¡@
lpbvalue = LEFT(lpbvalue, lpcbvalueSize - 1)
RETURN lpbvalue
* End of Code
¡@
¡@
FUNCTION WriteREG_SZ
* This function writes a REG_SZ value to the registry. If successful,
* its will return .T.. If not successful, it will return .F..
PARAMETERS nKey, cSubKey, cvalue, cvalueToWrite
* nKey The root key to open. It can be any of the constants defined below
*#DEFINE HKEY_CLASSES_ROOT -2147483648
*#DEFINE HKEY_CURRENT_USER -2147483647
*#DEFINE HKEY_LOCAL_MACHINE -2147483646
*#DEFINE HKEY_USERS -2147483645
* cSubKey The SubKey to open.
* cvalueToWrite The value being written to the registry.
¡@
* Constants that are needed for Registry functions
#DEFINE REG_BINARY 3
¡@
* WIN 32 API functions that are used
DECLARE INTEGER RegOpenKey IN Win32API ;
INTEGER nHKey, STRING @cSubKey, INTEGER @nResult
DECLARE INTEGER RegSetvalueEx IN Win32API ;
INTEGER hKey, STRING lpszvalueName, INTEGER dwReserved,;
INTEGER fdwType, STRING lpbData, INTEGER cbData
DECLARE INTEGER RegCloseKey IN Win32API INTEGER nHKey
¡@
* Local variables used
LOCAL nErrCode && Error Code returned from Registry functions
LOCAL nKeyHandle && Handle to Key that is opened in the Registry
LOCAL lpdwvalueType && Type of value that we are looking for
LOCAL lpbvalue && The data stored in the value
LOCAL lpcbvalueSize && Size of the variable
LOCAL lpdwReserved && Reserved Must be 0
¡@
* Initialize the variables
nKeyHandle = 0
lpdwReserved = 0
lpdwvalueType = REG_BINARY
lpbvalue = cvalueToWrite
¡@
nErrCode = RegOpenKey(nKey, cSubKey, @nKeyHandle)
* If the error code isn't 0, then the key doesn't exist or can't be opened.
IF (nErrCode # 0) THEN
RETURN .F.
ENDIF
¡@
lpcbvalueSize = LEN(lpbvalue) && Store the length of the string
nErrCode=RegSetvalueEx(nKeyHandle, cvalue, lpdwReserved, lpdwvalueType, lpbvalue, lpcbvalueSize)
¡@
=RegCloseKey(nKeyHandle)
IF (nErrCode # 0) THEN
RETURN .F.
ENDIF
RETURN .T.
* End of Code
¡@
¡@
FUNCTION BinaryToChar
PARAMETERS cchar
LOCAL nint,nmod,char1,char2
ntemp = INT(ASC(cchar)/16)
STORE "" TO char1,char2
DO CASE
CASE ntemp = 10
char1 = "a"
CASE ntemp = 11
char1 = "b"
CASE ntemp = 12
char1 = "c"
CASE ntemp = 13
char1 = "d"
CASE ntemp = 14
char1 = "e"
CASE ntemp = 15
char1="f"
OTHERWISE
char1 = STR(ntemp,1)
ENDCASE
nmod = ASC(cchar)-ntemp*16
DO CASE
CASE nmod = 10
char2 = "a"
CASE nmod = 11
char2 = "b"
CASE nmod = 12
char2 = "c"
CASE nmod = 13
char2 = "d"
CASE nmod = 14
char2 = "e"
CASE nmod = 15
char2 = "f"
OTHERWISE
char2 = STR(nmod,1)
ENDCASE
RETURN char1+char2
¡@
¡@
FUNCTION Hex16To10Dec &&16¨ì¤Q¶i¦ì
* Converts POSITIVE decimal integers to hex (Char).
* Input: NUMERIC
* Output: CHAR
¡@
PARAMETER InNum
OutStr = 0
¡@
FOR i = 1 TO LEN(InNum)
OutStr = FindHex(RIGHT(InNum,1))*16^(i-1)+OutStr
InNum = SUBSTR(InNum,1,LEN(InNum)-1)
ENDFOR
¡@
RETURN(OutStr)
¡@
FUNCTION FindHex &&16¶i¨î¨ì¤Q¶i¦ìªº¤º³¡¨ç¼Æ
* Lookup table for conversion of alpha hex chars.
* Input: NUMERIC
* Output: VAL
¡@
PARAMETERS InVal && Integer
PRIVATE ALL LIKE j*
¡@
DO CASE
CASE InVal = "a"
jOutStr = 10
CASE InVal = "b"
jOutStr = 11
CASE InVal = "c"
jOutStr = 12
CASE InVal = "d"
jOutStr = 13
CASE InVal = "e"
jOutStr = 14
CASE InVal = "f"
jOutStr = 15
OTHERWISE
jOutStr = VAL(InVal)
ENDCASE
RETURN(jOutStr)
¡@
FUNCTION Dec10To16Hex &&¤Q¨ì16¶i¨î
* Converts POSITIVE decimal integers to hex (Char).
* Input: NUMERIC
* Output: CHAR
¡@
PARAMETER InNum
OutStr = SPACE(0)
¡@
DO WHILE InNum>0
OutStr = Find16Hex(MOD(InNum,16))+OutStr
InNum = INT(InNum/16)
ENDDO
RETURN(OutStr)
¡@
FUNCTION Find16Hex &&¤Q¨ì16¶i¨îªº¤º³¡¨ç¼Æ
* Lookup table for conversion of alpha hex chars.
* Input: NUMERIC
* Output: CHAR
¡@
PARAMETERS InVal && Integer
PRIVATE ALL LIKE j*
¡@
DO CASE
CASE InVal = 10
jOutStr = "a"
CASE InVal = 11
jOutStr = "b"
CASE InVal = 12
jOutStr = "c"
CASE InVal = 13
jOutStr = "d"
CASE InVal = 14
jOutStr = "e"
CASE InVal = 15
jOutStr = "f"
OTHERWISE
jOutStr = STR(InVal,1,0)
ENDCASE
RETURN(jOutStr)
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@