⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 artest.tpl

📁 在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己的开发
💻 TPL
字号:
rem arraytst.opl
REM test code for the dynamic array opx.

INCLUDE "ArrayOpx.oxh"
INCLUDE "Cdescriptor.oxh"

DECLARE EXTERNAL 
EXTERNAL Main:
EXTERNAL Rand%:(i%)

CONST KMaxElem&= 100

PROC Main:

	LOCAL numberHandle&	rem handle of Array object.
	LOCAL error%
	LOCAL addr&,numDes&,s&,i&,err&
	LOCAL str$(255)
	addr&=ALLOC(255) REM person details...
	
	numberHandle&=ARInit&:(KMaxElem&,0)
	IF numberHandle&=0
		PRINT "No memory for array." : GET :	STOP
	ENDIF
	
	PRINT "Hash Table Array Created"
	numDes&=NewDes&:(addr&,0,32)
	s&=1
	PRINT "Hashing..."
	WHILE s& < 101
		i&=rand%:(KMaxElem&)
		DesNum:(numDes&,i&)
		error%=ARSetElement%:(numberHandle&,i&,numDes&)		
		s&=s&+1
	ENDWH

	REM DISPLAY ARRAY	
	i&=1
	WHILE i& < KMaxElem&+1
		str$=" "
		DesCopyStr:(numDes&,str$)
	  error%=ARElement%:(numberHandle&,i&,numDes&)
	  str$=DesStr$:(numDes&)
		print (i&);" = ";(str$)
		i&=i&+1
	ENDWH

	PRINT "Expand table.."
	err&=ARSetCount&:(numberHandle&,KMaxElem&+250)
	IF err& <> 0
	  PRINT "ok."
	ELSE
		PRINT "failed."
	ENDIF
	
	PRINT "Contract table.."
	err&=ARSetCount&:(numberHandle&,KMaxElem&-50)
	IF err& <> 0
	  PRINT "ok."
	ELSE
		PRINT "failed."
	ENDIF
	
	str$="55"
	PRINT "Set Element.. ";(str$);" to position 15"
	DesCopyStr:(numDes&,str$)
	error%=ARSetElement%:(numberHandle&,15,numDes&)
	IF error% <> 0
	  PRINT "ok."
	ELSE
		PRINT "failed."
	ENDIF
	
	
	PRINT "Get element at location 15"
	error%=ARElement%:(numberHandle&,15,numDes&)
	IF error% <> 0
	  str$=DesStr$:(numDes&)
	  PRINT "Location 15 = ";(str$)
	  PRINT "ok."
	ELSE
		PRINT "failed."
	ENDIF
	
	PRINT "Get Largest element.."
	err&=ARSizeMaxElement&:(numberHandle&)
	IF error% <> 0
	  PRINT "Largest element is ";(err&);" bytes long."
	  PRINT "ok."
	ELSE
		PRINT "failed."
	ENDIF
	
	PRINT "Count number of elements in the array"
	err&=ARCount&:(numberHandle&)
	IF error% <> 0
	  PRINT "There are ";(err&);" elements in the table."
	  PRINT "ok."
	ELSE
		PRINT "failed."
	ENDIF
		
	PRINT "Sort hash table.."
	error%=ARSort%:(numberHandle&)
	PRINT "OK"
	
	PRINT "Searching Table for num 55"
	DesCopyStr:(numDes&,"55")
	err&=ARSearch&:(numberHandle&,numDes&)
	IF err&=0
		PRINT "Entry Not found."
	ELSE
			str$=DesStr$:(numDes&)	
			PRINT "Entry found at {";(err&);"} .. ";(str$)
			PRINT "ok"
	endif
	
	PRINT "Deleting element {";(err&);"}"
	ARDeleteElement&:(numberHandle&,err&)
	PRINT "ok"
	
	
	DeleteDes:(numDes&)
	PRINT "DESCRIPTOR DELETED"
 	ARDelete&:(numberHandle&)
 	PRINT "HASH TABLE DELETED":get
	FREEALLOC(addr&)
	
ENDP

PROC Rand%:(m%)
	LOCAL v%
	v%=1+rnd*m%
	RETURN v%
ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -