|
|
|
Перекодировка в С++ Builder
|
|||
|---|---|---|---|
|
#18+
Товарисчи, мне надо отправлять письмо в указаной кодировке, т.е. перекодировать текст виндовый в указаную. Вот нарыл ф. на дельфи ктонить может переделать в С? /* { **** UBPFD *********** by delphibase.endimus.com **** >> Универсальное и быстрое перекодирование строки из кодировок ANSI, KOI8-R, KOI8-U, OEM/DOS, ISO В этой функции используется элементарный алгоритм, который по скорости работы опережает свои аналоги, и позволяет перекодировать текст из различных кодировок. Для перекодирования строки используется универсальная функция ConvertEncoding, где в качестве первого параметра выступает строка, которую необходимо перекодировать, а в качестве второго - матрица перекодирования, которая определяет из какой кодировки в какую необходимо перекодировать данную строку. В этой версии имеется 6 видов матриц перекодирования (тип TCodeMatrix): 1. cmAnsiToKoi8R - перекодирует строку из кодировки ANSI в кодировку KOI8-R 2. cmAnsiToKoi8U - перекодирует строку из кодировки ANSI в кодировку KOI8-U 3. cmKoi8RToAnsi - перекодирует строку из кодировки KOI8-R в кодировку ANSI 4. cmKoi8UToAnsi - перекодирует строку из кодировки KOI8-U в кодировку ANSI 5. cmOemDosToAnsi - перекодирует строку из кодировки OEM/DOS в кодировку ANSI 6. cmIsoToAnsi - перекодирует строку из кодировки ISO в кодировку ANSI Зависимости: System; Автор: VEG, veg@tut.by, Республика Беларусь - Слуцк Copyright: ©VEG, 31.10.2003 Дата: 31 октября 2003 г. ***************************************************** } */ type // Тип матриц перекодировки TCodeMatrix = array[1..255] of char; const // Матрицы перекодировки FirstCodes = #1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28+ #29#30#31' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^' + '_`abcdefghijklmnopqrstuvwxyz{|}~'; cmAnsiToKoi8R: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003 + 'ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·Ј—є»јЅѕїбвчздецъй' + 'клмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС'; cmAnsiToKoi8U: TCodeMatrix = FirstCodes // ver 0.8, ©VEG, 31.10.2003 + 'ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·Ј—є»јЅѕїбвчздецъй' + 'клмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС'; cmKoi8RToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003 + '-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-ёг㬬¬LLL---¦¦¦¦Ё¦¦TTT¦¦¦+++©юабцдефгх' + 'ийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ'; cmKoi8UToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003 + '-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-ёєгії¬LLL-ґў¦¦¦¦ЁЄ¦ІЇT¦¦¦+ҐЎ©юабцдефгх' + 'ийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ'; cmOemDosToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003 + 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп---¦+¦¦¬¬¦¦¬---¬L+T+-+¦¦L' + 'г¦T¦=+¦¦TTLL-г++----¦¦-рстуфхцчшщъыьэюяЁёЄєЇїЎў°•·v№¤¦ '; cmIsoToAnsi: TCodeMatrix = FirstCodes // ver 1.0, ©VEG, 31.10.2003 + '??????????????????????????????? ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШ' + 'ЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ'; function ConvertEncoding(sIn: string; sCoding: string): string; //sIn - строка для перекодирования //sCoding - матрица для перекодирования //result - полученная перекодированная строка var iFtd: integer; begin for iFtd := 1 to length(sIn) do result := result + sCoding[ord(sIn[iFtd])]; end; // ver 1.0, (C)Vrublevsky Evgeny Gennadyevich (BELARUS/SLUTSK), 31.10.2003 /* Пример использования: var sOut: string; begin sOut := ConvertEncoding(ConvertEncoding('Тест!', cmAnsiToKoi8R), cmKoi8RToAnsi); end; */ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2006, 15:16 |
|
||
|
Перекодировка в С++ Builder
|
|||
|---|---|---|---|
|
#18+
Когда то делалось так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. Последнюю строчку писал по памяти, не проверяя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 04:56 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=362&tid=2031560]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 357ms |

| 0 / 0 |
