Public Function Sy32Val(Character As String) As Integer
If Character = "ç" Then
Character = "Ç"
Else
If Character = "ğ" Then
Character = "Ğ"
Else
If Character = "ı" Then
Character = "I"
Else
If Character = "i" Then
Character = "İ"
Else
If Character = "ö" Then
Character = "Ö"
Else
If Character = "ş" Then
Character = "Ş"
Else
If Character = "ü" Then
Character = "Ü"
Else
Character = UCase(Character)
End If
End If
End If
End If
End If
End If
End If
Sy32Val = InStr(Tablo43, Character)
If Sy32Val = 0 Then Sy32Val = 44 + Asc(Character)
End Function
FILE: ADRES.FRM [ ADRES 417 Version 2.3 ]
Tablo43 = Chr$(32) + "0123456789ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ" + Chr$(0)
***

NOTE: SY-26 and SY-32 have same logic but SY-26 uses direct ASC codes while
SY-32 uses (Turkish based) modified character-index values. Sy32Val function
gives the modified value for Index file which has 44 sort records. Previous
version of SY-32 was using "instr" function and a character sort table which
has 109 characters.

Read sy-26.html for other SY-26/SY-32 snippets and US-English sort method.