Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 756

/ вопрос решён /

доброе время, господа программисты! У меня есть текст в дос формате(ascii), можно ли какнибуть, а если можно, то как, "расформатировать" этот текст, чтобы его можно было открыть блокнотом - ANSI. И это надо сделать программно(берем инфу с файла в одном формате, переделываем в другой, и сохраняем в другом файле). задача конкретная, другие решения не нужны - именно программно. если я что-то не понятно объяснил - пишите. Заранне благодарен.

Geron Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Geron (статус: 1-ый класс)
Вопрос отправлен: 17 июля 2007, 22:12
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Градов Ю.М.

Здравствуйте, Geron!
В приложении часть кода для преобразования из одного текстового формата в другой

Приложение:
  1. .......
  2. var
  3. Form1: TForm1;
  4. DosFile: string;
  5. WinFile: string;
  6.  
  7. implementation
  8.  
  9. {$R *.dfm}
  10.  
  11. procedure TForm1.Button1Click(Sender: TObject);
  12. var
  13. N: PChar;
  14. p: integer;
  15. begin
  16. if OpenDialog1.Execute then
  17. begin
  18. DosFile:=OpenDialog1.FileName;
  19. p:=Pos('.',DosFile);
  20. WinFile:=Copy(DosFile,1,p-1)+'_win'+Copy(DosFile,p,4);
  21. Memo1.Lines.LoadFromFile(DosFile);
  22. N:=Memo1.Lines.GetText;
  23. OemToAnsi(N, N);
  24. Memo1.Lines.Text := StrPas(N);
  25. end;
  26. end;
  27.  
  28. procedure TForm1.Button2Click(Sender: TObject);
  29. begin
  30. Memo1.Lines.SaveToFile(WinFile);
  31. end;
  32.  
  33. end.
  34.  


Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 17 июля 2007, 22:59
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: min@y™

Дополню. Вот мой модуль (может пригодиться) для работы с кодировками Ansi, DOS, ISO и KOI8-R (см. приложение):

Приложение:
  1. unit minayUtils;
  2.  
  3. interface
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. type
  9. TTranslateDirection=(tdNone,tdAnsiToDos,tdAnsiToKOI8,tdAnsiToISO,
  10. tdDosToAnsi,tdDosToKOI8,tdDosToISO,
  11. tdKOI8ToAnsi,tdKOI8ToDos,tdKOI8ToISO,
  12. tdISOToAnsi,tdISOToDos,tdISOToKOI8);
  13. TCodePage=array[$80..$FF] of char;
  14.  
  15. {============================== Êîíñòàíòû ìîäóëÿ ==============================}
  16. const
  17. C00=#$00; C10=#$10; C20=#$20; C30=#$30; C40=#$40; C50=#$50; C60=#$60; C70=#$70;
  18. C01=#$01; C11=#$11; C21=#$21; C31=#$31; C41=#$41; C51=#$51; C61=#$61; C71=#$71;
  19. C02=#$02; C12=#$12; C22=#$22; C32=#$32; C42=#$42; C52=#$52; C62=#$62; C72=#$72;
  20. C03=#$03; C13=#$13; C23=#$23; C33=#$33; C43=#$43; C53=#$53; C63=#$63; C73=#$73;
  21. C04=#$04; C14=#$14; C24=#$24; C34=#$34; C44=#$44; C54=#$54; C64=#$64; C74=#$74;
  22. C05=#$05; C15=#$15; C25=#$25; C35=#$35; C45=#$45; C55=#$55; C65=#$65; C75=#$75;
  23. C06=#$06; C16=#$16; C26=#$26; C36=#$36; C46=#$46; C56=#$56; C66=#$66; C76=#$76;
  24. C07=#$07; C17=#$17; C27=#$27; C37=#$37; C47=#$47; C57=#$57; C67=#$67; C77=#$77;
  25. C08=#$08; C18=#$18; C28=#$28; C38=#$38; C48=#$48; C58=#$58; C68=#$68; C78=#$78;
  26. C09=#$09; C19=#$19; C29=#$29; C39=#$39; C49=#$49; C59=#$59; C69=#$69; C79=#$79;
  27. C0A=#$0A; C1A=#$1A; C2A=#$2A; C3A=#$3A; C4A=#$4A; C5A=#$5A; C6A=#$6A; C7A=#$7A;
  28. C0B=#$0B; C1B=#$1B; C2B=#$2B; C3B=#$3B; C4B=#$4B; C5B=#$5B; C6B=#$6B; C7B=#$7B;
  29. C0C=#$0C; C1C=#$1C; C2C=#$2C; C3C=#$3C; C4C=#$4C; C5C=#$5C; C6C=#$6C; C7C=#$7C;
  30. C0D=#$0D; C1D=#$1D; C2D=#$2D; C3D=#$3D; C4D=#$4D; C5D=#$5D; C6D=#$6D; C7D=#$7D;
  31. C0E=#$0E; C1E=#$1E; C2E=#$2E; C3E=#$3E; C4E=#$4E; C5E=#$5E; C6E=#$6E; C7E=#$7E;
  32. C0F=#$0F; C1F=#$1F; C2F=#$2F; C3F=#$3F; C4F=#$4F; C5F=#$5F; C6F=#$6F; C7F=#$7F;
  33.  
  34. C80=#$80; C90=#$90; CA0=#$A0; CB0=#$B0; CC0=#$C0; CD0=#$D0; CE0=#$E0; CF0=#$F0;
  35. C81=#$81; C91=#$91; CA1=#$A1; CB1=#$B1; CC1=#$C1; CD1=#$D1; CE1=#$E1; CF1=#$F1;
  36. C82=#$82; C92=#$92; CA2=#$A2; CB2=#$B2; CC2=#$C2; CD2=#$D2; CE2=#$E2; CF2=#$F2;
  37. C83=#$83; C93=#$93; CA3=#$A3; CB3=#$B3; CC3=#$C3; CD3=#$D3; CE3=#$E3; CF3=#$F3;
  38. C84=#$84; C94=#$94; CA4=#$A4; CB4=#$B4; CC4=#$C4; CD4=#$D4; CE4=#$E4; CF4=#$F4;
  39. C85=#$85; C95=#$95; CA5=#$A5; CB5=#$B5; CC5=#$C5; CD5=#$D5; CE5=#$E5; CF5=#$F5;
  40. C86=#$86; C96=#$96; CA6=#$A6; CB6=#$B6; CC6=#$C6; CD6=#$D6; CE6=#$E6; CF6=#$F6;
  41. C87=#$87; C97=#$97; CA7=#$A7; CB7=#$B7; CC7=#$C7; CD7=#$D7; CE7=#$E7; CF7=#$F7;
  42. C88=#$88; C98=#$98; CA8=#$A8; CB8=#$B8; CC8=#$C8; CD8=#$D8; CE8=#$E8; CF8=#$F8;
  43. C89=#$89; C99=#$99; CA9=#$A9; CB9=#$B9; CC9=#$C9; CD9=#$D9; CE9=#$E9; CF9=#$F9;
  44. C8A=#$8A; C9A=#$9A; CAA=#$AA; CBA=#$BA; CCA=#$CA; CDA=#$DA; CEA=#$EA; CFA=#$FA;
  45. C8B=#$8B; C9B=#$9B; CAB=#$AB; CBB=#$BB; CCB=#$CB; CDB=#$DB; CEB=#$EB; CFB=#$FB;
  46. C8C=#$8C; C9C=#$9C; CAC=#$AC; CBC=#$BC; CCC=#$CC; CDC=#$DC; CEC=#$EC; CFC=#$FC;
  47. C8D=#$8D; C9D=#$9D; CAD=#$AD; CBD=#$BD; CCD=#$CD; CDD=#$DD; CED=#$ED; CFD=#$FD;
  48. C8E=#$8E; C9E=#$9E; CAE=#$AE; CBE=#$BE; CCE=#$CE; CDE=#$DE; CEE=#$EE; CFE=#$FE;
  49. C8F=#$8F; C9F=#$9F; CAF=#$AF; CBF=#$BF; CCF=#$CF; CDF=#$DF; CEF=#$EF; CFF=#$FF;
  50.  
  51. {***********************************************************************************************}
  52. {*********************************** Òàáëèöû êîäèðîâîê *****************************************}
  53. {***********************************************************************************************}
  54.  
  55. {---------------------------------------- Windows ----------------------------------------------}
  56.  
  57. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  58. AnsiToDosCodePage:TCodePage=(
  59. C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00, // 80-8F
  60. C00,C00,C00,C00,C00,'ù',C00,C00,C00,C00,C00,C00,C00,C00,C00,C00, // 90-9F
  61. C00,'ö','÷',C00,'ý',C00,C00,C00,'ð',C00,'ò',C00,C00,C00,C00,'ô', // A0-AF
  62. 'ø',C00,C00,C00,C00,C00,C00,'ú','ñ','ü','ó',C00,C00,C00,C00,'õ', // B0-BF
  63.  
  64.  
  65.  
  66. 'à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï');// F0-FF
  67.  
  68. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  69. AnsiToIsoCodePage:TCodePage=(
  70. C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00, // 80-8F
  71. C00,C00,C00,C00,C00,CFE,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00, // 90-9F
  72. C00,C00,C00,C00,C00,C00,C00,C00,CF0,C00,C00,C00,C00,C00,C00,C00, // A0-AF
  73. C00,CFB,C00,C00,C00,C00,C00,C00,CF1,C00,C00,C00,C00,C00,C00,C00, // B0-BF
  74. CB0,CB1,CB2,CB3,CB4,CB5,CB6,CB7,CB8,CB9,CBA,CBB,CBC,CBD,CBE,CBF, // C0-CF
  75. CC0,CC1,CC2,CC3,CC4,CC5,CC6,CC7,CC8,CC9,CCA,CCB,CCC,CCD,CCE,CCF, // D0-DF
  76. CD0,CD1,CD2,CD3,CD4,CD5,CD6,CD7,CD8,CD9,CDA,CDB,CDC,CDD,CDE,CDF, // E0-EF
  77. CE0,CE1,CE2,CE3,CE4,CE5,CE6,CE7,CE8,CE9,CEA,CEB,CEC,CED,CEE,CEF);// F0-FF
  78.  
  79.  
  80. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  81. AnsiToKoi8CodePage:TCodePage=(
  82. C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00, // 80-8F
  83. C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00,C00, // 90-9F
  84. C00,C00,C00,C00,C00,C00,C00,C00,CE5,C00,C00,CAE,C00,C00,C00,C00, // A0-AF
  85. C00,C00,C00,C00,C00,C00,C00,C00,CC5,C00,C00,CAF,C00,C00,C00,C00, // B0-BF
  86. CE1,CE2,CF7,CE7,CE4,CE5,CF6,CFA,CE9,CEA,CEB,CEC,CED,CEE,CEF,CF0, // C0-CF
  87. CF2,CF3,CF4,CF5,CE6,CE8,CE3,CFE,CFB,CFD,CFF,CF9,CF8,CFC,CE0,CF1, // D0-DF
  88. CC1,CC2,CD7,CC7,CC4,CC5,CD6,CDA,CC9,CCA,CCB,CCC,CCD,CCE,CCF,CD0, // E0-EF
  89. CD2,CD3,CD4,CD5,CC6,CC8,CC3,CDE,CDB,CDD,CDF,CD9,CD8,CDC,CC0,CD1);// F0-FF
  90.  
  91. {------------------------------------------- Dos -----------------------------------------------}
  92.  
  93. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  94. DosToAnsiCodePage:TCodePage=(
  95. CC0,CC1,CC2,CC3,CC4,CC5,CC6,CC7,CC8,CC9,CCA,CCB,CCC,CCD,CCE,CCF, // 80-8F
  96. CD0,CD1,CD2,CD3,CD4,CD5,CD6,CD7,CD8,CD9,CDA,CDB,CDC,CDD,CDE,CDF, // 90-9F
  97. CE0,CE1,CE2,CE3,CE4,CE5,CE6,CE7,CE8,CE9,CEA,CEB,CEC,CED,CEE,CEF, // A0-AF
  98. C2D,C2D,C2D,CA6,C2B,CA6,CA6,CAC,CAC,CA6,CA6,CAC,C2D,C2D,C2D,CAC, // B0-BF
  99. C4C,C2B,C54,C2B,C2D,C2B,CA6,CA6,C4C,CE3,CA6,C54,CA6,C3D,C2B,CA6, // C0-CF
  100. CA6,C54,C54,C4C,C4C,C2D,CE3,C2B,C2B,C2D,C2D,C2D,C2D,CA6,CA6,C2D, // D0-DF
  101. CF0,CF1,CF2,CF3,CF4,CF5,CF6,CF7,CF8,CF9,CFA,CFB,CFC,CFD,CFE,CFF, // E0-EF
  102. CA8,CB8,CAA,CBA,CAF,CBF,CA1,CA2,CB0,C95,CB7,C76,CB9,CA4,CA6,CA0);// F0-FF
  103.  
  104. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  105. DosToIsoCodePage:TCodePage=(
  106. CB0,CB1,CB2,CB3,CB4,CB5,CB6,CB7,CB8,CB9,CBA,CBB,CBC,CBD,CBE,CBF, // 80-8F
  107. CC0,CC1,CC2,CC3,CC4,CC5,CC6,CC7,CC8,CC9,CCA,CCB,CCC,CCD,CCE,CCF, // 90-9F
  108. CD0,CD1,CD2,CD3,CD4,CD5,CD6,CD7,CD8,CD9,CDA,CDB,CDC,CDD,CDE,CDF, // A0-AF
  109. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // B0-BF
  110. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // C0-CF
  111. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // D0-DF
  112. CE0,CE1,CE2,CE3,CE4,CE5,CE6,CE7,CE8,CE9,CEA,CEB,CEC,CED,CEE,CEF, // E0-EF
  113. CA1,CF1,CA4,CF4,CA7,CF7,CAE,CAE,C3F,C3F,C2E,C3F,CF0,C24,C3F,CA0);// F0-FF
  114.  
  115. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  116. DosToKoi8CodePage:TCodePage=(
  117. CE1,CE2,CF7,CE7,CE4,CE5,CF6,CFA,CE9,CEA,CEB,CEC,CED,CEE,CEE,CF0, // 80-8F
  118. CF2,CF3,CF4,CF5,CE6,CE8,CE3,CFE,CFB,CFD,CFF,CF9,CF8,CFC,CE0,CF1, // 90-9F
  119. CC1,CC2,CD7,CC7,CC4,CC5,CD6,CDA,CC9,CCA,CCB,CCC,CCD,CCE,CCF,CD0, // A0-AF
  120. C90,C91,C92,C81,C87,CB2,CB4,CA7,CA6,CB5,CA1,CA8,CAE,CAD,CAC,C83, // B0-BF
  121. C84,C89,C88,C86,C80,C8A,CAF,CB0,CAB,CA5,CBB,CB8,CB1,CA0,CBE,CB9, // C0-CF
  122. CBA,CB6,CB7,CAA,CA9,CA2,CA4,CBD,CBC,C85,C82,C8D,C8C,C8E,C8F,C8B, // D0-DF
  123. CD2,CD3,CD4,CD5,CC6,CC8,CC3,CDE,CDB,CDD,CDF,CD9,CD8,CDC,CC0,CD1, // E0-EF
  124. CB3,CA3,C3F,C3F,C3F,C3F,C3F,C3F,C9C,C95,C9E,C96,C3F,C3F,C94,C9A);// F0-FF
  125.  
  126. {------------------------------------------ Iso ------------------------------------------------}
  127.  
  128. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  129. IsoToAnsiCodePage:TCodePage=(
  130. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 80-8F
  131. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C98,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 90-9F
  132. CA0,CA8,C80,C81,CAA,CBD,CB2,CAF,CA3,C8A,C8C,C8E,C8D,CAD,CA1,C8F, // A0-AF
  133. CC0,CC1,CC2,CC3,CC4,CC5,CC6,CC7,CC8,CC9,CCA,CCB,CCC,CCD,CCE,CCF, // B0-BF
  134. CD0,CD1,CD2,CD3,CD4,CD5,CD6,CD7,CD8,CD9,CDA,CDB,CDC,CDD,CDE,CDF, // C0-CF
  135. CE0,CE1,CE2,CE3,CE4,CE5,CE6,CE7,CE8,CE9,CEA,CEB,CEC,CED,CEE,CEF, // D0-DF
  136. CF0,CF1,CF2,CF3,CF4,CF5,CF6,CF7,CF8,CF9,CFA,CFB,CFC,CFD,CFE,CFF, // E0-EF
  137. CB9,CB8,C90,C83,CBA,CBE,CB3,CBF,CBC,C9A,C9C,C9E,C9D,CA7,CA2,C9F);// F0-FF
  138.  
  139. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  140. IsoToDosCodePage:TCodePage=(
  141. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 80-8F
  142. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 90-9F
  143. CFF,CF0,C3F,C3F,CF2,C3F,C3F,CF4,C3F,C3F,C3F,C3F,C3F,C2D,CF6,C3F, // A0-AF
  144. C80,C81,C82,C83,C84,C85,C86,C87,C88,C89,C8A,C8B,C8C,C8D,C8E,C8F, // B0-BF
  145. C90,C91,C92,C93,C94,C95,C96,C97,C98,C99,C9A,C9B,C9C,C9D,C9E,C9F, // C0-CF
  146. CA0,CA1,CA2,CA3,CA4,CA5,CA6,CA7,CA8,CA9,CAA,CAB,CAC,CAD,CAE,CAF, // D0-DF
  147. CE0,CE1,CE2,CE3,CE4,CE5,CE6,CE7,CE8,CE9,CEA,CEB,CEC,CED,CEE,CEF, // E0-EF
  148. CFC,CF1,C3F,C3F,CF3,C3F,C3F,CF5,C3F,C3F,C3F,C3F,C3F,C15,CF7,C3F);// F0-FF
  149.  
  150. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  151. IsoToKoi8CodePage:TCodePage=(
  152. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 80-8F
  153. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 90-9F
  154. C9A,CB3,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C2D,C3F,C3F, // A0-AF
  155. CE1,CE2,CF7,CE7,CE4,CE5,CF6,CFA,CE9,CEA,CEB,CEC,CED,CEE,CEE,CF0, // B0-BF
  156. CF2,CF3,CF4,CF5,CE6,CE8,CE3,CFE,CFB,CFD,CFF,CF9,CF8,CFC,CE0,CF1, // C0-CF
  157. CC1,CC2,CD7,CC7,CC4,CC5,CD6,CDA,CC9,CCA,CCB,CCC,CCD,CCE,CCF,CD0, // D0-DF
  158. CD2,CD3,CD4,CD5,CC6,CC8,CC3,CDE,CDB,CDD,CDF,CD9,CD8,CDC,CC0,CD1, // E0-EF
  159. C3F,CA3,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C15,C3F,C3F);// F0-FF
  160.  
  161. {------------------------------------------ Koi8 -----------------------------------------------}
  162.  
  163. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  164. Koi8ToAnsiCodePage:TCodePage=(
  165. C2D,CA6,C2D,CAC,C4C,C2D,C2B,C2B,C54,C2B,C2B,C2D,C2D,C2D,CA6,CA6, // 80-8F
  166. C2D,C2D,C2D,C3F,CA6,C95,C76,C3F,C3F,C3F,CA0,C3F,CB0,C3F,CB7,C3F, // 90-9F
  167. C3D,CA6,C2D,CB8,CE3,CE3,CAC,CAC,CAC,C4C,C4C,C4C,C2D,C2D,C2D,CA6, // A0-AF
  168. CA6,CA6,CA6,CA8,CA6,CA6,C54,C54,C54,CA6,CA6,CA6,C2B,C2B,C2B,CA9, // B0-BF
  169. CFE,CE0,CE1,CF6,CE4,CE5,CF4,CE3,CF5,CE8,CE9,CEA,CEB,CEC,CED,CEE, // C0-CF
  170. CEF,CFF,CF0,CF1,CF2,CF3,CE6,CE2,CFC,CFB,CE7,CF8,CFD,CF9,CF7,CFA, // D0-DF
  171. CDE,CC0,CC1,CD6,CC4,CC5,CD4,CC3,CD5,CC8,CC9,CCA,CCB,CCC,CCD,CCE, // E0-EF
  172. CCF,CDF,CD0,CD1,CD2,CD3,CC6,CC2,CDC,CDB,CC7,CD8,CDD,CD9,CD7,CDA);// F0-FF
  173.  
  174. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  175. Koi8ToDosCodePage:TCodePage=(
  176. CE1,CE2,CF7,CE7,CE4,CE5,CF6,CFA,CE9,CEA,CEB,CEC,CED,CEE,CEF,CF0, // 80-8F
  177. CF2,CF3,CF4,CF5,CE6,CE8,CE3,CFE,CFB,CFD,CFF,CF9,CF8,CFC,CE0,CF1, // 90-9F
  178. CC1,CC2,CD7,CC7,CC4,CC5,CD6,CDA,CC9,CCA,CCB,CCC,CCD,CCE,CCF,CD0, // A0-AF
  179. C90,C91,C92,C81,C87,CB2,CB4,CA7,CA6,CB5,CA1,CA8,CAE,CAD,CAC,C83, // B0-BF
  180. C84,C89,C88,C86,C80,C8A,CAF,CB0,CAB,CA5,CBB,CB8,CB1,CA0,CBE,CB9, // C0-CF
  181. CBA,CB6,CB7,CAA,CA9,CA2,CA4,CBD,CBC,C85,C82,C8D,C8C,C8E,C8F,C8B, // D0-DF
  182. CD2,CD3,CD4,CD5,CC6,CC8,CC3,CDE,CDB,CDD,CDF,CD9,CD8,CDC,CC0,CD1, // E0-EF
  183. CB3,CA3,C3F,C3F,C3F,C3F,C3F,C3F,C9C,C95,C9E,C96,C3F,C3F,C94,C9A);// F0-FF
  184.  
  185. // 0 1 2 3 4 5 6 7 8 9 A B C D E F
  186. Koi8ToIsoCodePage:TCodePage=(
  187. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // 80-8F
  188. C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,CA0,C3F,C3F,C32,C2E,C3F, // 90-9F
  189. C3F,C3F,C3F,CF1,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F, // A0-AF
  190. C3F,C3F,C3F,CA1,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C3F,C43, // B0-BF
  191. CEE,CD0,CD1,CE6,CD4,CD5,CE4,CD3,CE5,CD8,CD9,CDA,CDB,CDC,CDD,CDE, // C0-CF
  192. CDF,CEF,CE0,CE1,CE2,CE3,CD6,CD2,CEC,CEB,CD7,CE8,CED,CE9,CE7,CEA, // D0-DF
  193. CCE,CB0,CB1,CC6,CB4,CB5,CC4,CB3,CC5,CB8,CB9,CBA,CBB,CBC,CBD,CBE, // E0-EF
  194. CBF,CCF,CC0,CC1,CC2,CC3,CB6,CB2,CCC,CCB,CB7,CC8,CCD,CC9,CC7,CCA);// F0-FF
  195.  
  196. // Ïåðåâîä êîäèðîâêè ñòðîêè Ansi ---> Dos, KOI8, ISO
  197. function EncodingTranslate(const S:string;const TranslateDirection:TTranslateDirection):string;
  198.  
  199. implementation
  200.  
  201. // Ïåðåâîä êîäèðîâêè ñòðîêè Ansi ---> Dos, KOI8, ISO
  202. function EncodingTranslate(const S:string;const TranslateDirection:TTranslateDirection):string;
  203. var
  204. i:Integer;
  205. Code:Byte;
  206. CodePage:TCodePage;
  207. begin
  208. Result:=S;
  209. case TranslateDirection of
  210. tdAnsiToDos : CodePage:=AnsiToDosCodePage;
  211. tdAnsiToKOI8 : CodePage:=AnsiToKOI8CodePage;
  212. tdAnsiToISO : CodePage:=AnsiToISOCodePage;
  213. tdDosToAnsi : CodePage:=DosToAnsiCodePage;
  214. tdDosToKOI8 : CodePage:=DosToKOI8CodePage;
  215. tdDosToISO : CodePage:=DosToISOCodePage;
  216. tdKOI8ToAnsi : CodePage:=KOI8ToAnsiCodePage;
  217. tdKOI8ToDos : CodePage:=KOI8ToDosCodePage;
  218. tdKOI8ToISO : CodePage:=KOI8ToISOCodePage;
  219. tdISOToAnsi : CodePage:=ISOToAnsiCodePage;
  220. tdISOToDos : CodePage:=ISOToDosCodePage;
  221. tdISOToKOI8 : CodePage:=ISOToKOI8CodePage;
  222. tdNone : Exit;
  223. end; //case
  224. for i:=1 to Length(S) do
  225. begin
  226. Code:=Ord(Result[i]);
  227. if Code>127
  228. then Result[i]:=CodePage[Code];
  229. end;
  230. end;
  231.  
  232. end.


Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 18 июля 2007, 08:50
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 18 июля 2007, 08:53; участников в обсуждении: 1.
min@y™

min@y™ (статус: Доктор наук), 18 июля 2007, 08:53 [#1]:

Прошу прощения, скопировалось некорректно (вместо русских символов кракозябры). Если надо, могу выслать файл по электропочте.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

31 января 2011, 19:29: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.03 сек.