38 lines
1,008 B
Text
38 lines
1,008 B
Text
EnableExplicit
|
|
DataSection
|
|
Data.s ~"AA\tAA\tAA\nAA\tBB\tCC\nAA\tCC\tBB\nAA\tACB\tBB\tCC\nsingel_element"
|
|
EndDataSection
|
|
|
|
Macro PassFail(PF)
|
|
If PF : PrintN("Pass") : Else : PrintN("Fail") : EndIf
|
|
EndMacro
|
|
|
|
Macro ProcRec(Proc)
|
|
Define tf1$,tf2$ : Static chk.b : chk=#True
|
|
tf1$=StringField(s$,c,tz$) : tf2$=StringField(s$,c+1,tz$)
|
|
If Len(tf2$) : Proc(s$,tz$,c+1) : EndIf
|
|
EndMacro
|
|
|
|
Procedure.b IsStringsEqual(s$,tz$=~"\t",c.i=1)
|
|
ProcRec(IsStringsEqual)
|
|
chk & Bool(tf1$=tf2$ Or tf2$="")
|
|
ProcedureReturn chk
|
|
EndProcedure
|
|
|
|
Procedure.b IsStringsAscending(s$,tz$=~"\t",c.i=1)
|
|
ProcRec(IsStringsAscending)
|
|
chk & Bool(tf1$<tf2$ Or tf2$="")
|
|
ProcedureReturn chk
|
|
EndProcedure
|
|
|
|
Define t$,sf$,c.i,i.i,PF.b
|
|
Read.s t$ : c=CountString(t$,~"\n")
|
|
OpenConsole("Compare a list of Strings")
|
|
For i=1 To c+1
|
|
sf$=StringField(t$,i,~"\n")
|
|
PrintN("List : "+sf$)
|
|
Print("Lexical test : ") : PassFail(IsStringsEqual(sf$))
|
|
Print("Ascending test : ") : PassFail(IsStringsAscending(sf$))
|
|
PrintN("")
|
|
Next
|
|
Input()
|