马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 arrssg 于 2023-8-8 16:02 编辑
不知道有用没?
- #ifndef UniqueTableIncluded
- #define UniqueTableIncluded
- library UniqueTable
- globals
- private hashtable table=InitHashtable()
- private integer columns=0
- endglobals
-
- function UT_IsValidColumn takes integer column returns boolean
- return column>0 and column<=columns
- endfunction
- function UT_NewColumn takes nothing returns integer
- set columns=columns+1
- return columns
- endfunction
- function UT_RemoveColumn takes integer column returns boolean
- if(UT_IsValidColumn(column))then
- call FlushChildHashtable(table,column)
- return true
- endif
- return false
- endfunction
-
- function UT_IsValidSpace takes integer column,integer space returns boolean
- if(space<=0)then
- return false
- endif
- if(UT_IsValidColumn(column))then
- return false
- endif
- return HaveSavedInteger(table,column,space)
- endfunction
- function UT_NewSpace takes integer column,integer value returns integer
- local integer space=LoadInteger(table,column,-1)+1
- call SaveInteger(table,column,-1,space)
- call SaveInteger(table,column,space,value)
- return space
- endfunction
-
- function UT_RemoveSpace takes integer column,integer space returns boolean
- if(not UT_IsValidSpace(column,space))then
- return false
- endif
- call RemoveSavedInteger(table,column,space)
- return true
- endfunction
-
- function UT_SetValue takes integer column,integer space,integer value returns nothing
- if(not UT_IsValidSpace(column,space))then
- return
- endif
- call SaveInteger(table,column,space,value)
- endfunction
- function UT_GetValue takes integer column,integer space returns integer
- if(not UT_IsValidSpace(column,space))then
- return 0
- endif
- return LoadInteger(table,column,space)
- endfunction
-
- endlibrary
- #endif
复制代码
|