Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Украинская "і" при перекодировке из-под доса.... / 2 сообщений из 2, страница 1 из 1
23.12.2003, 14:57
    #32360944
VMik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Украинская "і" при перекодировке из-под доса....
Вопрос к людям, которые знакомы с проблемой отображения украинской "і" при выводе данных дос-заполненной таблицы.... Как Вы знаете, вместо корректного символа выдает что-то типа у-краткого....
Как устранить этот недостаток?... Подменой символа?...
Подскажите, кто знает....

---
С наилучшими,
Dr. l'Ego aka VMik
...
Рейтинг: 0 / 0
23.12.2003, 16:11
    #32361077
VMik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Украинская "і" при перекодировке из-под доса....
Догадался сам...
Ну, а для тех, кому нужно, читайте:

Код: 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.
59.
60.
61.
62.
63.
{не мой код, брал отсюдова - с СКуЕль, автора не записал, так что 
звыняйте...}
const
AlfWinChr: array[ 1 .. 67 ]of integer=
( 192 , 193 , 194 , 195 , 196 , 197 , 168 , 198 , 199 , 200 , 201 , 202 , 203 , 204 , 205 ,
  206 , 207 , 208 , 209 , 210 , 211 , 212 , 213 , 214 , 215 , 216 , 217 , 218 , 219 , 220 ,
  221 , 222 , 223 , 224 , 225 , 226 , 227 , 228 , 229 , 184 , 230 , 231 , 232 , 233 , 234 ,
  235 , 236 , 237 , 238 , 239 , 240 , 241 , 242 , 243 , 244 , 245 , 246 , 247 , 248 , 249 ,
  250 , 251 , 252 , 253 , 254 , 255 , 179 );

{отдельно циклом с помощью ord('x') подбираем значения для украинского набора символов и ставим сюда. Желательно и русское Ы добавить... 
Я делал так:
procedure TForm1.Button2Click(Sender: TObject);
var stmp: char;
zzz: integer;
begin
for  zzz:= 1  to Length(Edit1.Text) do begin
stmp:=Edit1.Text[zzz];
Edit2.Text:=Edit2.Text+' '+intToStr(ord(stmp));
end;
end;}

AlfDOSChr: array[ 1 .. 67 ]of integer=
( 128 , 129 , 130 , 131 , 132 , 133 , 240 , 134 , 135 , 136 , 137 , 138 , 139 , 140 , 141 ,
  142 , 143 , 144 , 145 , 146 , 147 , 148 , 149 , 150 , 151 , 152 , 153 , 154 , 155 , 156 ,
  157 , 158 , 159 , 160 , 161 , 162 , 163 , 164 , 165 , 241 , 166 , 167 , 168 , 169 , 170 ,
  171 , 172 , 173 , 174 , 175 , 224 , 225 , 226 , 227 , 228 , 229 , 230 , 231 , 232 , 233 ,
  234 , 235 , 236 , 237 , 238 , 239 , 247 );

{аналогично... Но строка должна быть закодирована в досе....}

function DosToWin(st:string):string;
var
 len,k,kk:longint;
 lit,litout:string[ 1 ];
 Stout:string;
 ordNom:integer;
 Enter:boolean;
 begin
  if st='' then
   begin
    DosToWin:='';
    exit;
   end;
  stout:='';
  len:=Length(st);
  for k:= 1  to len do
   begin
    lit:=Copy(st,k, 1 );
    ordNom:=Ord(lit[ 1 ]);
    Enter:=False;
    for kk:= 1  to  67  do
     begin
      if ordNom=AlfDosChr[kk] then
       begin
        litOut:=chr(AlfWinChr[kk]);
        Enter:=true;
        Break;
       end;
     end;
    if Enter then stout:=stout+litOut{+' d('+IntToStr(AlfDOSChr[kk])+')' +' w('+IntToStr(AlfWinChr[kk])+')'} else stout:=stout+lit;
   end;
  DosToWin:=stout;
 end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Украинская "і" при перекодировке из-под доса.... / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]