Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,48 @@
|
|||
' version 23-10-2016
|
||||
' compile with: fbc -s console
|
||||
|
||||
#Include Once "crt/stdlib.bi" ' for qsort
|
||||
|
||||
Function mycmp Cdecl (s1 As Any Pointer, s2 As Any Pointer) As Long
|
||||
|
||||
' -1 no swap first element before second element
|
||||
' 0 no swap needed, don't care
|
||||
' 1 swap first element after second element
|
||||
|
||||
Dim As String str1 = *Cast(String Ptr, s1)
|
||||
Dim As String str2 = *Cast(String Ptr, s2)
|
||||
|
||||
Dim As Long l1 = Len(str1), l2 = Len(str2)
|
||||
If (l1 > l2) Then Return -1 ' descending
|
||||
If (l1 < l2) Then Return 1 '
|
||||
|
||||
' there equal length, sort ascending
|
||||
If UCase(str1) = UCase(str2) Then
|
||||
If str1 > str2 Then Return 1
|
||||
Else
|
||||
If UCase(str1) > UCase(str2) Then Return 1
|
||||
End If
|
||||
|
||||
Return 0
|
||||
|
||||
End Function
|
||||
|
||||
' ------=< MAIN >=------
|
||||
|
||||
Dim As String words(0 To ...) = {"Here", "are", "some", "sample", _
|
||||
"strings", "to", "be", "sorted" }
|
||||
|
||||
Dim As ULong array_size = UBound(words) - LBound(words) + 1
|
||||
|
||||
qsort(@words(0), array_size, SizeOf(String), @mycmp)
|
||||
|
||||
For i As Integer = 0 To UBound(words)
|
||||
Print words(i)
|
||||
Next
|
||||
Print
|
||||
|
||||
' empty keyboard buffer
|
||||
While InKey <> "" : Wend
|
||||
Print : Print "hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
Loading…
Add table
Add a link
Reference in a new issue