Code: Select all
EnableExplicit
Define s$ = "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
Define s1$ = #TAB$ + "Data.i ", z, i
For i = 0 To 127
s1$ + Str(Asc(Mid(s$, i, 1))) + ", "
z + 1
If z > 10
z = 0
s1$ = Left(s1$, Len(s1$) - 2) + #CRLF$ + #TAB$ + "Data.i "
; If i = 127
; s1$ = Left(s1$, Len(s1$) - 8)
; EndIf
EndIf
Next
Debug Left(s1$, Len(s1$) - 2)
I took the code originally here.
Code: Select all
EnableExplicit
Procedure ToCP1251(*s.Unicode)
Protected i
Protected *ptr.Unicode
While *s\u
If *s\u > 127 And *s\u < 256
*ptr = ?CP1251 + *s\u - 128
; Debug ?CP1251
; Debug *s\u - 128
; Debug *ptr\u
*s\u = *ptr\u
EndIf
*s + SizeOf(Unicode)
Wend
EndProcedure
Define i, Text$
For i = 224 To 255
Text$ + Chr(i)
Next
For i = 192 To 223
Text$ + Chr(i)
Next
; 224 - 128 = 96
Debug Text$ ; 1252
ToCP1251(@Text$)
Debug Text$ ; 1251
DataSection
CP1251:
Data.i 1026, 1026, 1027, 8218, 1107, 8222, 8230, 8224, 8225, 8364, 8240
Data.i 1033, 8249, 1034, 1036, 1035, 1039, 1106, 8216, 8217, 8220, 8221
Data.i 8226, 8211, 8212, 152, 8482, 1113, 8250, 1114, 1116, 1115, 1119
Data.i 160, 1038, 1118, 1032, 164, 1168, 166, 167, 1025, 169, 1028
Data.i 171, 172, 173, 174, 1031, 176, 177, 1030, 1110, 1169, 181
Data.i 182, 183, 1105, 8470, 1108, 187, 1112, 1029, 1109, 1111, 1040
Data.i 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051
Data.i 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062
Data.i 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073
Data.i 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084
Data.i 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095
Data.i 1096, 1097, 1098, 1099, 1100, 1101, 1102
EndDataSection