convert dos cyrilic to win

8 отговора 362 прегледа
#1

convert dos cyrilic to win

Моля, дайте ми идея как на Visual C++ CString който съдържа DOS кирилица, как да го конвертирам към WIN кирилица.

Благодаря.

Отговор
в отговор на stam #2

Re: convert dos cyrilic to win

Намери си кодовите таблици на OEM и ANSI кирилицата и виж кои букви трябва да се сменят. Май от "п" нататък се различаваха. Аз си бях писал една програмка за ДОС, която конвертираше текст от досовска кирилица на windows-ка, мога да ти я пратя, на Pascal е писана.

Always Outnumbered - Never Outgunned
Отговор
в отговор на stam #3

Re: convert dos cyrilic to win

Всеки символ го прекарваш така:

if (ch >= 128 && ch < 192)
ch += 64;

Отговор
в отговор на Cизиф #4

Re: convert dos cyrilic to win

Благодаря.

Отговор
в отговор на Lupi #5

Уточнение

OEM кодовите таблици във Windows са CP855 или CP866.

Вероятно човекът иска да конвертира от "нашата" кодова таблица MIK за DOS (навремето реализирана хардуерно в ПРАВЕЦ-16) във ANSI - CP1251. Преди време съм правил програмка за това на VBA. Ако предизвика интерес, мога да я пусна във форума.

Отговор
в отговор на stam #6

Re: convert dos cyrilic to win

Не е точно каквото питаш, нито е написано както трябва, ама дано ти е полезно да видиш отместванията как са.. :-)


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й на

Отговор
в отговор на Йopooл-Гyй #7

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!

Отговор
в отговор на Йopooл-Гyй #8

Re: convert dos cyrilic to win

Bah maamu, imal sam ostanali zhivi sauchenici... t.e. hora koito otbirat ot asm za i8086 :)

Отговор
в отговор на :) #9

Re: convert dos cyrilic to win

Ахъм. И не само един при това

Отговор