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

📄 tsfunc.tpl

📁 在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己的开发
💻 TPL
📖 第 1 页 / 共 2 页
字号:
REM tSFunc.tpl
REM EPOC OPL automatic test code for string functions.
REM Copyright (c) 1991-2000 Symbian Ltd. All rights reserved.

INCLUDE "Const.oph"
INCLUDE "hUtils.oph"

PROC Standalone:
	REM Main procedure called when not running inside test harness.
	LOADM KhUtils$
	hLink:("tSFunc", hThreadIdFromOplDoc&:, KhUserFull%)
	REM After standalone completion, control returns here.
	rem dINIT "Tests complete" :DIALOG
	gIPRINT "Tests complete" :PAUSE 10
ENDP


proc tSFunc:
	rem hInitTestHarness:(KhInitLocalErrorHandling%, KhInitNotUsed%)
  rem Strtest:("String Functions")

	hRunTest%:("tHexStr")
  hRunTest%:("tPeekStr")
  hRunTest%:("tReptStr")
  hRunTest%:("tLowerStr")
  hRunTest%:("tUpperStr")
  hRunTest%:("tChrStr")
  hRunTest%:("tNumStr")
  hRunTest%:("tErrStr")
	hRunTest%:("tDateStr")
  hRunTest%:("tFixStr")
  hRunTest%:("tGenStr")
  hRunTest%:("tSlice")
  hRunTest%:("tDirN")
  hRunTest%:("tSciStr")

rem	hCleanUp%:("CleanUp")
rem	KLog%:(KhLogHigh%,"Some sample text")
endp



REM--------------------------------------------------------------------------
proc tSlice:
	tMid:
	tLeft:
	tRight:
endp


proc tMid:
    local a$(255),i%,j%
    rem SubTest:("MID$ test")

    rem print mid$("123",1,0)
    rem print mid$("123",1,1)
    rem print mid$("123",1,2)
    rem print mid$("123",1,3)
    rem print mid$("123",1,4)
    if mid$("123",1,0)<>"" :raise 1 :endif
    if mid$("123",1,1)<>"1" :raise 2 :endif
    if mid$("123",1,2)<>"12" :raise 3 :endif
    if mid$("123",1,3)<>"123" :raise 4 :endif
    if mid$("123",1,4)<>"123" :raise 5 :endif

    rem print mid$("123",2,0)
    rem print mid$("123",2,1)
    rem print mid$("123",2,2)
    rem print mid$("123",2,3)
    if mid$("123",2,0)<>"" :raise 6 :endif
    if mid$("123",2,1)<>"2" :raise 7 :endif
    if mid$("123",2,2)<>"23" :raise 8 :endif
    if mid$("123",2,3)<>"23" :raise 9 :endif

    rem print mid$("123",3,0)
    rem print mid$("123",3,1)
    rem print mid$("123",3,2)
    if mid$("123",3,0)<>"" :raise 10 :endif
    if mid$("123",3,1)<>"3" :raise 11 :endif
    if mid$("123",3,2)<>"3" :raise 12 :endif

    rem print mid$("123",4,0)
    rem print mid$("123",4,1)
    if mid$("123",4,0)<>"" :raise 13 :endif
    if mid$("123",4,1)<>"" :raise 14 :endif

    if mid$("",1,1)<>"" :raise 100 :endif

    onerr e1::
    print mid$("123",0,1)
    onerr off
    raise 16
e1::
    onerr off
    if err<>KErrInvalidArgs% :raise 17 :endif

    onerr e2::
    print mid$("123",-1,1)
    onerr off
    raise 18
e2::
    onerr off
    if err<>KErrInvalidArgs% :raise 19 :endif

    onerr e3::
    print mid$("123",1,-1)
    onerr off : raise 20
e3::
    onerr off
    if err<>KErrInvalidArgs%
        raise 21
    endif

cont::
    a$="1"+rept$("X",253)+"2"
    if mid$(a$,1,1)<>"1"
      raise 22
    endif
    if mid$(a$,255,1)<>"2"
      raise 23
    endif
    if mid$(a$,2,253)<>rept$("X",253)
      raise 24
    endif
    if mid$(a$,1,255)<>a$
      raise 25
    endif
    if mid$(a$,1,32766)<>a$
      raise 26
    endif
endp


proc tRight:
    local a$(255)
    rem SubTest:("RIGHT$ test")

    rem print right$("123",0)
    rem print right$("123",1)
    rem print right$("123",2)
    rem print right$("123",3)
    rem print right$("123",4)
    if right$("123",0)<>"" :raise 1 :endif
    if right$("123",1)<>"3" :raise 2 :endif
    if right$("123",2)<>"23" :raise 3 :endif
    if right$("123",3)<>"123" :raise 4 :endif
    if right$("123",4)<>"123" :raise 5 :endif

    if right$("",1)<>"" :raise 100 :endif

    onerr e3::
    print right$("123",-1)
    onerr off : raise 20
e3::
    onerr off
    if err<>KErrInvalidArgs%
        raise 21
    endif

cont::
    a$="1"+rept$("X",253)+"2"
    if right$(a$,1)<>"2"
      raise 22
    endif
    if right$(a$,255)<>a$
      raise 23
    endif
    if right$(a$,32766)<>a$
      raise 24
    endif
endp


proc tLeft:
    local a$(255)

    rem SubTest:("LEFT$ test")

    rem print left$("123",0)
    rem print left$("123",1)
    rem print left$("123",2)
    rem print left$("123",3)
    rem print left$("123",4)
    if left$("123",0)<>"" :raise 1 :endif
    if left$("123",1)<>"1" :raise 2 :endif
    if left$("123",2)<>"12" :raise 3 :endif
    if left$("123",3)<>"123" :raise 4 :endif
    if left$("123",4)<>"123" :raise 5 :endif

    if left$("",1)<>"" :raise 100 :endif

    onerr e3::
    print left$("123",-1)
    onerr off : raise 20
e3::
    onerr off
    if err<>KErrInvalidArgs%
        raise 21
    endif

cont::
    a$="1"+rept$("X",253)+"2"
    if left$(a$,1)<>"1"
      raise 22
    endif
    if left$(a$,255)<>a$
      raise 23
    endif
    if left$(a$,32766)<>a$
      raise 24
    endif
endp


REM--------------------------------------------------------------------------
proc tDirN:
  local n$(128),spec$(130),num%,fName1$(12),fName2$(12)
  rem subTest:("Directory Test")

  spec$="*.xyz"
	trap delete "*.xyz"
  fName1$="dir1.xyz"
  fName2$="dir2.xyz"

	lopen fName1$
	lprint fName1$
	lclose
	lopen fName2$
	lprint fName2$
	lclose

  rem print "Doing directory of",spec$
  n$=dir$(spec$)
  num%=0
  while n$<>""
    rem print n$
    num%=num%+1
    n$=dir$("")
  endwh

  if num%=2
    rem print "Completed OK"
  else
    rem print num%,"files found" :beep 3,1000 :get
    raise 1
  endif
	delete fName1$
	delete fName2$
  return
endp


REM-------------------------------------------------------------------------
proc tDateStr:
  local second%,minute%,hour%,day%,dayN$(10),monthN$(20),date$(30),month%,year%
  local bldDate$(30),dayInM$(2),day$(2),year$(6),hour$(4),minute$(4),second$(4)

  rem SubTest:("Date String Functions")
  date$=datim$
  second%=second
  minute%=minute
  hour%=hour
  year%=year
  month%=month
  monthN$=month$(month%)
  day%=day
  dayN$=dayName$(dow(day%,month%,year%))
  dayInM$=num$(day%,-2)
  if day%<10
    dayInM$="0"+chr$($30+day%)
  endif
  year$=num$(year%,4)+" "
  hour$=num$(hour%,2)+":"
  if hour%<10
    hour$="0"+hour$
  endif
  minute$=num$(minute%,2)+":"
  if minute%<10
    minute$="0"+minute$
  endif
  second$=num$(second%,2)
  if second%<10
    second$="0"+second$
  endif
  bldDate$=dayN$+" "+dayInM$+" "+monthN$+" "+year$+hour$+minute$+second$
  rem print "datim$     ->",date$
  rem print "Built name ->",bldDate$
  rem pause pause% :key
  if bldDate$<>date$
    rem beep 3,500
    rem print "Check tDate$:() : dates differ by at least 1 second"
    rem print "String slice the text time when time is available"
    rem pause pause% :key
    raise 1
  endif

  onerr e1::
	print dayName$(0)
	onerr off
  raise 2
e1::
	onerr off
  if err<>KErrInvalidArgs% :raise 3 :endif

  onerr e2::
	print dayName$(8)
	onerr off
  raise 4
e2::
	onerr off
  if err<>KErrInvalidArgs% :raise 5 :endif

  onerr e3::
	print dayName$(257)
	onerr off
  raise 6
e3::
	onerr off
  if err<>KErrInvalidArgs% :raise 7 :endif

  onerr e4::
	print dayName$(-1)
	onerr off
  raise 8
e4::
	onerr off
  if err<>KErrInvalidArgs% :raise 9 :endif

  onerr e5::
	print month$(0)
	onerr off
  raise 10
e5::
	onerr off
  if err<>KErrInvalidArgs% :raise 11 :endif

  onerr e6::
	print month$(13)
	onerr off
  raise 12
e6::
	onerr off
  if err<>KErrInvalidArgs% :raise 13 :endif

  onerr e7::
	print month$(257)
	onerr off
  raise 14
e7::
	onerr off
  if err<>KErrInvalidArgs% :raise 15 :endif

  onerr e8::
	print month$(-1)
	onerr off
  raise 16
e8::
	onerr off
  if err<>KErrInvalidArgs% :raise 17 :endif
endp

REM-------------------------------------------------------------------------

proc tErrStr:
    onerr e1::
    print 1/0
    onerr off : raise 1
e1::
    onerr off
    if err$(err)<>"Divide by zero"
      raise 2
    endif
endp

REM-------------------------------------------------------------------------

proc tSciStr:
  local a$(255),name$(10)

  name$="SCI$ test"
  rem SubTest:(name$)

  a$=sci$(123,2,8)
  rem print "sci$(123,2,8)->";a$
  testErr:(a$,"1.23E+02",1,name$)

  a$=sci$(123,2,-8)
  rem print "sci$(123,2,-8)->";a$
  testErr:(a$,"1.23E+02",2,name$)

  a$=sci$(123,2,-20)
  rem print "sci$(123,2,-20)->";a$
  testErr:(a$,"            1.23E+02",3,name$)

  a$=sci$(123,2,7)
  rem print "sci$(123,2,7)->";a$
  testErr:(a$,"*******",4,name$)

  a$=sci$(123,0,5)
  rem print "sci$(123,0,5)->";a$
  testErr:(a$,"1E+02",5,name$)

  a$=sci$(123,0,4)
  rem print "sci$(123,0,4)->";a$
  testErr:(a$,"****",6,name$)

  a$=sci$(123,128,3)
  rem print "sci$(123,128,3)->";a$
  testErr:(a$,"***",7,name$)

  a$=sci$(-123.456,2,9)
  rem print "sci$(-123.456,2,9)->";a$
  testErr:(a$,"-1.23E+02",8,name$)

  a$=sci$(-123.456,2,8)
  rem print "sci$(-123.456,2,8)->";a$
  testErr:(a$,"********",9,name$)

  a$=sci$(-123.456,0,6)
  rem print "sci$(-123.456,0,6)->";a$
  testErr:(a$,"-1E+02",10,name$)

  a$=sci$(-123.456,0,5)
  rem print "sci$(-123.456,0,5)->";a$
  testErr:(a$,"*****",11,name$)

  a$=sci$(-123.456,128,3)
  rem print "sci$(-123.456,128,3)->";a$
  testErr:(a$,"***",12,name$)

  a$=sci$(0.000123456,2,-8)
  rem print "sci$(0.000123456,2,-8)->";a$
  testErr:(a$,"1.23E-04",13,name$)

  a$=sci$(0.000123456,2,-10)
  rem print "sci$(0.000123456,2,-10)->";a$
  testErr:(a$,"  1.23E-04",14,name$)

  a$=sci$(-0.000123456,2,-9)
  rem print "sci$(-0.000123456,2,-9)->";a$
  testErr:(a$,"-1.23E-04",15,name$)

  a$=sci$(-0.000123456,2,-8)
  rem print "sci$(-0.000123456,2,-8)->";a$
  testErr:(a$,"********",16,name$)
  
	a$=sci$(1.7976931348623157e308,14,30)
  rem print "sci$(1.7976931348623157e308,14,30)->";a$
  testErr:(a$,"1.79769313486232E+308",17,name$)
  
  a$=sci$(1.7976931348623157e308,14,-30)
  rem print "sci$(1.7976931348623157e308,14,-30)->";a$
  testErr:(a$,"         1.79769313486232E+308",18,name$)
  
  a$=sci$(1.23456789E200,5,16)
  rem print "sci$(1.23456789E200,5,16)->";a$
  testErr:(a$,"1.23457E+200",19,name$)
  
  a$=sci$(1.23456789E200,5,-16)
  rem print "sci$(1.23456789E200,5,-16)->";a$
  testErr:(a$,"    1.23457E+200",20,name$)

⌨️ 快捷键说明

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