Καταρχή από VS6 δημιουργούμε ένα ACTIVEX DLL PROJECT.
To project αυτό θά περιέχει μία κλάση την Clselot και μέσα στην κλάση τις δύο παρακάτω Function οι οποίες δέχονται ένα string για παράμετρο.
'Μετατροπή Windows 928 σε Dos 737
Public Function ElotToDOS(MyString As String) As String
Dim elot(1 To 61), dos(1 To 62)
Dim i As Long, k As Long
Dim temp As String
Open App.Path & "\bin\WinGreek" For Input As #1
Do While Not EOF(1)
elot(i + 1) = Input(1, #1)
i = i + 1
Loop
i = 0
Open App.Path & "\bin\DosGreek" For Input As #2
Do While Not EOF(2)
dos(i + 1) = Input(1, #2)
i = i + 1
Loop
dos(62) = "?"
Close #1
Close #2
For i = 1 To Len(MyString)
k = 1
If Asc(Mid(MyString, i, 1)) >= 128 Then
Do While Mid(MyString, i, 1) <> elot(k)
k = k + 1
If k > 61 Then
Exit Do
End If
Loop
temp = temp + dos(k)
Else
temp = temp + Mid(MyString, i, 1)
End If
Next
ElotToDOS = temp
End Function
'Μετατροπή Dos 737 σε Windows 928
Public Function ElotToWIN(MyString As String) As String
Dim elot(1 To 62), dos(1 To 62)
Dim i As Long, k As Long
Dim temp As String
Open App.Path & "\bin\WinGreek" For Input As #1
Do While Not EOF(1)
elot(i + 1) = Input(1, #1)
i = i + 1
Loop
i = 0
Open App.Path & "\bin\DosGreek" For Input As #2
Do While Not EOF(2)
dos(i + 1) = Input(1, #2)
i = i + 1
Loop
dos(62) = "?"
Close #1
Close #2
For i = 1 To Len(MyString)
k = 1
If Asc(Mid(MyString, i, 1)) >= 128 Then
Debug.Print Asc(Mid(MyString, i, 1))
Do While Mid(MyString, i, 1) <> dos(k)
k = k + 1
If k > 61 Then
Exit Do
End If
Loop
temp = temp + elot(k)
Else
temp = temp + Mid(MyString, i, 1)
End If
Next
ElotToWIN= temp
End Function
Επισύνάπτω και το zip File με τα αρχεία WinGreek και DosGreek που ουσιαστικά είναι ένα map των χαρακτήρων για Windows και Dos τά οποία τοποθετούνται σέ ένα φάκελο μέ την ονομασία Bin στο Directory το οποίο έχουμε δημιουργήσει το DLL μας.
Ιωάννης Μανουσάκης