convert dos cyrilic to win
8 отговора
362 прегледа
convert dos cyrilic to win
Моля, дайте ми идея как на Visual C++ CString който съдържа DOS кирилица, как да го конвертирам към WIN кирилица.
Благодаря.
Благодаря.
Re: convert dos cyrilic to win
Намери си кодовите таблици на OEM и ANSI кирилицата и виж кои букви трябва да се сменят. Май от "п" нататък се различаваха. Аз си бях писал една програмка за ДОС, която конвертираше текст от досовска кирилица на windows-ка, мога да ти я пратя, на Pascal е писана.
Always Outnumbered - Never Outgunned
Always Outnumbered - Never Outgunned
Re: convert dos cyrilic to win
Всеки символ го прекарваш така:
if (ch >= 128 && ch < 192)
ch += 64;
if (ch >= 128 && ch < 192)
ch += 64;
Уточнение
OEM кодовите таблици във Windows са CP855 или CP866.
Вероятно човекът иска да конвертира от "нашата" кодова таблица MIK за DOS (навремето реализирана хардуерно в ПРАВЕЦ-16) във ANSI - CP1251. Преди време съм правил програмка за това на VBA. Ако предизвика интерес, мога да я пусна във форума.
Вероятно човекът иска да конвертира от "нашата" кодова таблица MIK за DOS (навремето реализирана хардуерно в ПРАВЕЦ-16) във ANSI - CP1251. Преди време съм правил програмка за това на VBA. Ако предизвика интерес, мога да я пусна във форума.
Re: convert dos cyrilic to win
Не е точно каквото питаш, нито е написано както трябва, ама дано ти е полезно да видиш отместванията как са.. :-)
"Yelp." -- Gaspode the wonder dog.
seg_a segment byte public
assume cs:seg_a, ds:seg_a
org 100h
omm proc far
start:
mov dx,offset data_1
mov ah,9
int 21h
mov ax, 3d00h
mov dx, offset fname1
int 21h
mov fhndl1, ax
mov ax, 3d02h
mov dx, offset fname2
int 21h
mov fhndl2, ax
goo:
mov ax, 3f00h
mov bx, fhndl1
mov cx, 800h
mov dx, offset data_2
int 21h
mov cx,ax
mov fsize,ax
mov ax,0BF00h
mov bx,8040h
mov si,offset data_2
locloop_1:
cmp byte ptr cs:[si],ah
ja loc_2 ; Jump if above
cmp byte ptr cs:[si],bh
jb loc_2 ; Jump if below
add byte ptr cs:[si],bl
loc_2:
inc si
loop locloop_1 ; Loop if cx > 0
mov ax, 4000h
mov bx, fhndl2
mov cx, fsize
mov dx, offset data_2
int 21h
cmp fsize, 800h
jnb goo
mov ax, 3e00h
mov bx, fhndl1
int 21h
mov ax, 3e00h
mov bx, fhndl2
int 21h
mov ax, 4c00h
int 21h
data_1 db 'dos2win 0.1 by velin@zadnik.org, GPL'
db 0Dh, 0Ah, '$'
data_2 dw 1024 dup (0)
fname1 db 'FILE1.TXT'
db 00
fname2 db 'FILE2.TXT'
db 00
fhndl1 dw 00
fhndl2 dw 00
fsize dw 00
omm endp
seg_a ends
end start
"Yelp." -- Gaspode the wonder dog.
Редактирано от Йopooл-Гyй на
Re: convert dos cyrilic to win
misla ce predisnia otgovor bese tocno kakvoto coveka pita!
dali sa si napise stranna programa na assembler (tova si place za filtar naprimer) ili nesot na VC++--*/VABAjavaOpp-....Net_Pro edva li e vajno!
dali sa si napise stranna programa na assembler (tova si place za filtar naprimer) ili nesot na VC++--*/VABAjavaOpp-....Net_Pro edva li e vajno!
Re: convert dos cyrilic to win
Bah maamu, imal sam ostanali zhivi sauchenici... t.e. hora koito otbirat ot asm za i8086 :)