Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: Tiếng Việt trong lập trình C | Tiếng Việt trong lập trình C++

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,760

    Post Tiếng Việt trong lập trình C | Tiếng Việt trong lập trình C++

    Nếu ứng dụng bạn lập là GUI, thực thi trên các hệ điều hành hỗ trợ GUI (windows ...) thì bạn hãy tham khảo các đối tượng font và sự hỗ trợ unicode của môi trường lập trình.

    Nếu ứng dụng của bạn là console, 16bit, được thực thi trên môi trường MS DOS hoặc môi trường giả lập MS DOS của Windows (windows có một cơ chế thực thi riêng đảm bảo sự tương thích cho những ứng dụng 16 bit cũ) thì khi đó bạn cần thay đổi hệ thống font hiển thị được MS DOS load từ ROM BIOS vào bộ nhớ khi khởi động. Cách thay đổi ở đây đó chính là thay đổi các kí tự thuộc ASCII mở rộng của bảng ASCII. Đó là sơ lược về mặt ý tưởng. Mình ko có thời gian nên ko trình bày chi tiết, hơn nữa những kiến thức dưới đây, cũng cũ rồi để ở phòng thí nghiệm cho vui thôi.

    Ứng dụng console 16bit for DOS thường đc biên dịch = TC3.0 hoặc BC3.0, BC5.0 ... Đoạn code này đảm bảo cho bạn hiển thị đc tiếng việt khi lập trình với C++, C.

    FileName: FONTVN.H

    C Code:
    1. /*  fontvn.h
    2.  *  Copyright (C) 2005 by Nguyen Hoang.
    3.  */
    4.  #if !defined(__FONTVN_H)
    5.  #define __FONTVN_H
    6.  
    7.  #if !defined(__STDIO_H)
    8.  #include <stdio.h>
    9.  #endif
    10.  
    11.  #if !defined(__CONIO_H)
    12.  #include <conio.h>
    13.  #endif
    14.  
    15.  #if !defined(__DOS_H)
    16.  #include <dos.h>
    17.  #endif
    18.  
    19.  int changeFont(void);
    20.  
    21.  /* Change font */ 
    22.  int changeFont(void)
    23.  {
    24.     int i, j;
    25.     char    vnfont[16*256]=
    26.     {      
    27.         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    28.         24,24,24,24,24,24,24,248,0,0,0,0,0,0,0,0,
    29.         240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,
    30.         255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,
    31.         0,254,2,3,63,3,3,3,3,3,3,3,255,255,0,0,
    32.         0,254,254,254,254,126,62,30,14,6,254,254,254,254,254,0,
    33.         255,1,1,1,1,1,1,249,249,1,1,1,1,1,1,255,
    34.         0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,0,
    35.         0,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,
    36.         0,254,254,126,62,30,14,6,126,126,126,126,126,254,254,0,
    37.         0,254,254,126,126,126,126,126,6,14,30,62,126,254,254,0,
    38.         0,0,248,4,254,2,3,3,3,3,3,3,255,255,0,0,
    39.         255,128,129,131,135,143,159,191,131,131,131,131,131,128,128,255,
    40.         0,254,2,3,3,255,3,3,3,3,3,3,255,255,0,0,
    41.         0,254,2,115,131,131,131,115,3,3,3,3,255,255,0,0,
    42.         0,254,2,3,195,67,251,67,195,3,3,3,255,255,0,0,
    43.         0,0,64,96,112,120,124,126,124,120,112,96,64,0,0,0,
    44.         0,0,1,3,7,15,31,63,31,15,7,3,1,0,0,0,
    45.         0,254,2,243,139,243,147,139,3,3,3,3,255,255,0,0,
    46.         0,254,2,251,131,243,131,251,3,3,3,3,255,255,0,0,
    47.         255,1,125,125,171,215,239,239,239,215,187,109,85,41,1,255,
    48.         0,254,130,130,130,84,40,16,16,40,68,130,170,214,254,0,
    49.         0,0,0,0,0,0,0,255,24,24,24,24,24,24,24,24,
    50.         0,1,3,2,6,4,12,136,216,80,112,32,0,0,0,0,
    51.         0,0,0,0,8,28,62,127,28,28,28,28,0,0,0,0,
    52.         0,0,0,0,28,28,28,28,127,62,28,8,0,0,0,0,
    53.         0,0,0,0,0,0,24,12,254,12,24,0,0,0,0,0,
    54.         0,0,0,0,0,0,48,96,254,96,48,0,0,0,0,0,
    55.         0,127,126,124,127,111,79,0,0,79,111,127,124,126,127,0,
    56.         0,126,62,30,126,118,114,0,0,114,118,126,30,62,126,0,
    57.         0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,
    58.         255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
    59.         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    60.         0,0,0,0,24,60,60,60,24,24,0,24,24,0,0,0,
    61.         0,0,0,102,102,102,36,0,0,0,0,0,0,0,0,0,
    62.         0,0,0,0,108,108,254,108,108,108,254,108,108,0,0,0,
    63.         0,0,24,24,124,198,194,192,124,6,134,198,124,24,24,0,
    64.         0,0,0,0,0,0,194,198,12,24,48,102,198,0,0,0,
    65.         0,0,0,0,56,108,108,56,118,220,204,204,118,0,0,0,
    66.         0,0,0,48,48,48,96,0,0,0,0,0,0,0,0,0,
    67.         0,0,0,0,12,24,48,48,48,48,48,24,12,0,0,0,
    68.         0,0,0,0,48,24,12,12,12,12,12,24,48,0,0,0,
    69.         0,0,0,0,0,0,102,60,255,60,102,0,0,0,0,0,
    70.         0,0,0,0,0,0,24,24,126,24,24,0,0,0,0,0,
    71.         0,0,0,0,0,0,0,0,0,0,24,24,24,48,0,0,
    72.         0,0,0,0,0,0,0,0,254,0,0,0,0,0,0,0,
    73.         0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,
    74.         0,0,0,0,2,6,12,24,48,96,192,128,0,0,0,0,
    75.         0,0,0,0,124,198,206,222,246,230,198,198,124,0,0,0,
    76.         0,0,0,0,24,56,120,24,24,24,24,24,126,0,0,0,
    77.         0,0,0,0,124,198,6,12,24,48,96,198,254,0,0,0,
    78.         0,0,0,0,124,198,6,6,60,6,6,198,124,0,0,0,
    79.         0,0,0,0,12,28,60,108,204,254,12,12,30,0,0,0,
    80.         0,0,0,0,254,192,192,192,252,6,6,198,124,0,0,0,
    81.         0,0,0,0,60,96,192,192,252,198,198,198,124,0,0,0,
    82.         0,0,0,0,254,198,6,12,24,48,48,48,48,0,0,0,
    83.         0,0,0,0,124,198,198,198,124,198,198,198,124,0,0,0,
    84.         0,0,0,0,124,198,198,198,126,6,6,12,120,0,0,0,
    85.         0,0,0,0,0,24,24,0,0,0,24,24,0,0,0,0,
    86.         0,0,0,0,0,24,24,0,0,0,24,24,48,0,0,0,
    87.         0,0,0,0,6,12,24,48,96,48,24,12,6,0,0,0,
    88.         0,0,0,0,0,0,0,126,0,0,126,0,0,0,0,0,
    89.         0,0,0,0,96,48,24,12,6,12,24,48,96,0,0,0,
    90.         0,0,0,0,124,198,198,12,24,24,0,24,24,0,0,0,
    91.         0,0,0,0,124,198,198,222,222,222,220,192,124,0,0,0,
    92.         0,0,0,0,16,56,108,198,198,254,198,198,198,0,0,0,
    93.         0,0,0,0,252,102,102,102,124,102,102,102,252,0,0,0,
    94.         0,0,0,0,60,102,194,192,192,192,194,102,60,0,0,0,
    95.         0,0,0,0,248,108,102,102,102,102,102,108,248,0,0,0,
    96.         0,0,0,0,254,102,98,104,120,104,98,102,254,0,0,0,
    97.         0,0,0,0,254,102,98,104,120,104,96,96,240,0,0,0,
    98.         0,0,0,0,60,102,194,192,192,222,198,102,58,0,0,0,
    99.         0,0,0,0,198,198,198,198,254,198,198,198,198,0,0,0,
    100.         0,0,0,0,60,24,24,24,24,24,24,24,60,0,0,0,
    101.         0,0,0,0,30,12,12,12,12,12,204,204,120,0,0,0,
    102.         0,0,0,0,230,102,108,108,120,108,108,102,230,0,0,0,
    103.         0,0,0,0,240,96,96,96,96,96,98,102,254,0,0,0,
    104.         0,0,0,0,198,238,254,254,214,198,198,198,198,0,0,0,
    105.         0,0,0,0,198,230,246,254,222,206,198,198,198,0,0,0,
    106.         0,0,0,0,56,108,198,198,198,198,198,108,56,0,0,0,
    107.         0,0,0,0,252,102,102,102,124,96,96,96,240,0,0,0,
    108.         0,0,0,0,124,198,198,198,198,214,222,124,12,14,0,0,
    109.         0,0,0,0,252,102,102,102,124,108,102,102,231,0,0,0,
    110.         0,0,0,0,124,198,198,96,56,12,198,198,124,0,0,0,
    111.         0,0,0,0,126,126,90,24,24,24,24,24,60,0,0,0,
    112.         0,0,0,0,198,198,198,198,198,198,198,198,124,0,0,0,
    113.         0,0,0,0,198,198,198,198,198,198,108,56,16,0,0,0,
    114.         0,0,0,0,198,198,198,198,214,214,254,124,108,0,0,0,
    115.         0,0,0,0,198,198,108,56,56,56,108,198,198,0,0,0,
    116.         0,0,0,0,102,102,102,102,60,24,24,24,60,0,0,0,
    117.         0,0,0,0,254,198,140,24,48,96,194,198,254,0,0,0,
    118.         0,0,0,0,60,48,48,48,48,48,48,48,60,0,0,0,
    119.         0,0,0,0,128,192,224,112,56,28,14,6,2,0,0,0,
    120.         0,0,0,0,60,12,12,12,12,12,12,12,60,0,0,0,
    121.         0,0,16,56,108,198,0,0,0,0,0,0,0,0,0,0,
    122.         0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,
    123.         0,0,48,48,24,0,0,0,0,0,0,0,0,0,0,0,
    124.         0,0,0,0,0,0,0,120,12,124,204,204,118,0,0,0,
    125.         0,0,0,0,224,96,96,120,108,102,102,102,124,0,0,0,
    126.         0,0,0,0,0,0,0,124,198,192,192,198,124,0,0,0,
    127.         0,0,0,0,28,12,12,60,108,204,204,204,118,0,0,0,
    128.         0,0,0,0,0,0,0,124,198,254,192,198,124,0,0,0,
    129.         0,0,0,0,56,108,100,96,240,96,96,96,240,0,0,0,
    130.         0,0,0,0,0,0,0,118,204,204,204,124,12,204,120,0,
    131.         0,0,0,0,224,96,96,108,118,102,102,102,230,0,0,0,
    132.         0,0,0,0,24,24,0,56,24,24,24,24,60,0,0,0,
    133.         0,0,0,0,6,6,0,14,6,6,6,6,102,102,60,0,
    134.         0,0,0,0,224,96,96,102,108,120,108,102,230,0,0,0,
    135.         0,0,0,0,56,24,24,24,24,24,24,24,60,0,0,0,
    136.         0,0,0,0,0,0,0,236,254,214,214,214,198,0,0,0,
    137.         0,0,0,0,0,0,0,220,102,102,102,102,102,0,0,0,
    138.         0,0,0,0,0,0,0,124,198,198,198,198,124,0,0,0,
    139.         0,0,0,0,0,0,0,220,102,102,102,124,96,96,240,0,
    140.         0,0,0,0,0,0,0,118,204,204,204,124,12,12,30,0,
    141.         0,0,0,0,0,0,0,220,118,102,96,96,240,0,0,0,
    142.         0,0,0,0,0,0,0,124,198,112,28,198,124,0,0,0,
    143.         0,0,0,0,16,48,48,252,48,48,48,54,28,0,0,0,
    144.         0,0,0,0,0,0,0,204,204,204,204,204,118,0,0,0,
    145.         0,0,0,0,0,0,0,102,102,102,102,60,24,0,0,0,
    146.         0,0,0,0,0,0,0,198,198,214,214,254,108,0,0,0,
    147.         0,0,0,0,0,0,0,198,108,56,56,108,198,0,0,0,
    148.         0,0,0,0,0,0,0,198,198,198,198,126,6,12,248,0,
    149.         0,0,0,0,0,0,0,254,204,24,48,102,254,0,0,0,
    150.         0,0,0,0,14,24,24,24,112,24,24,24,14,0,0,0,
    151.         0,0,0,0,24,24,24,24,0,24,24,24,24,0,0,0,
    152.         0,0,0,0,112,24,24,24,14,24,24,24,112,0,0,0,
    153.         0,0,0,0,118,220,0,0,0,0,0,0,0,0,0,0,
    154.         0,0,0,0,0,0,16,56,108,198,198,254,0,0,0,0,
    155.         0,0,0,0,0,0,124,198,192,192,198,124,24,12,248,0,
    156.         0,0,0,0,204,204,0,204,204,204,204,204,118,0,0,0,
    157.         0,0,0,0,108,108,0,120,12,124,204,204,118,0,0,0,
    158.         0,0,48,72,72,48,0,120,12,124,204,204,118,0,0,0,
    159.         0,0,0,0,108,108,0,124,198,254,192,198,124,0,0,0,
    160.         0,0,0,0,108,108,0,56,24,24,24,24,60,0,0,0,
    161.         0,0,0,24,60,102,0,56,24,24,24,24,60,0,0,0,
    162.         0,0,0,0,108,222,26,26,126,216,216,218,108,0,0,0,
    163.         0,0,0,0,204,204,0,124,198,198,198,198,124,0,0,0,
    164.         0,0,0,48,120,204,0,204,204,204,204,204,118,0,0,0,
    165.         0,0,0,0,198,198,0,198,198,198,198,126,6,12,120,0,
    166.         0,0,24,24,24,124,198,192,192,198,124,24,24,24,0,0,
    167.         0,0,0,56,108,100,96,240,96,96,102,230,188,0,0,0,
    168.         0,0,0,102,102,102,60,24,126,24,60,24,24,0,0,0,
    169.         0,0,0,252,102,102,124,98,102,111,102,102,243,0,0,0,
    170.         0,0,0,0,118,220,0,220,102,102,102,102,102,0,0,0,
    171.         0,0,0,0,0,0,54,108,216,108,54,0,0,0,0,0,
    172.         0,0,0,0,0,0,216,108,54,108,216,0,0,0,0,0,
    173.         0,0,0,0,24,24,24,126,24,24,24,0,126,126,0,0,
    174.         0,0,0,0,96,48,24,12,24,48,96,0,124,124,0,0,
    175.         0,0,0,0,12,24,48,96,48,24,12,0,124,124,0,0,
    176.         24,24,24,60,60,126,126,255,24,24,24,24,24,24,24,24,
    177.         24,24,24,24,24,24,24,24,255,126,126,60,60,24,24,24,
    178.         0,0,0,0,0,64,112,124,255,124,112,64,0,0,0,0,
    179.         0,0,0,0,0,2,14,62,255,62,14,2,0,0,0,0,
    180.         0,224,32,48,48,48,48,48,48,48,48,48,240,240,0,0,
    181.         255,128,128,128,128,128,128,159,159,128,128,128,128,128,128,255,
    182.         192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
    183.         255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    184.         0,240,24,28,30,30,3,3,3,3,3,3,255,255,0,0,
    185.         0,254,1,0,124,254,254,254,254,124,0,1,254,0,0,0,
    186.         0,0,0,128,128,64,64,64,64,128,128,0,0,0,0,0,
    187.         0,0,0,0,0,0,0,255,192,192,192,192,192,192,192,192,
    188.         0,0,108,56,0,56,108,198,198,254,198,198,198,0,0,0,
    189.         0,16,56,108,0,56,108,198,198,254,198,198,198,0,0,0,
    190.         0,16,56,68,254,102,98,104,120,104,98,102,254,0,0,0,
    191.         0,16,56,68,56,108,198,198,198,198,198,108,56,0,0,0,
    192.         0,0,3,1,58,108,198,198,198,198,198,108,56,0,0,0,
    193.         0,0,3,1,199,198,198,198,198,198,198,198,124,0,0,0,
    194.         0,0,0,0,248,108,102,102,254,102,102,108,248,0,0,0,
    195.         0,0,0,0,108,56,0,120,12,124,204,204,118,0,0,0,
    196.         0,0,0,0,56,108,0,120,12,124,204,204,118,0,0,0,
    197.         0,0,0,0,56,108,0,124,198,254,192,198,124,0,0,0,
    198.         0,0,0,0,56,108,0,124,198,198,198,198,124,0,0,0,
    199.         0,0,0,0,0,3,1,126,198,198,198,198,124,0,0,0,
    200.         0,0,0,0,0,3,1,206,204,204,204,204,118,0,0,0,
    201.         0,0,0,0,12,62,12,60,108,204,204,204,118,0,0,0,
    202.         0,224,96,112,112,112,112,112,112,112,112,112,240,240,0,0,
    203.         0,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,
    204.         0,255,192,192,195,194,223,194,195,192,192,192,255,63,0,0,
    205.         0,255,192,192,192,192,192,192,192,192,192,192,255,63,0,0,
    206.         24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
    207.         255,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
    208.         0,0,192,96,48,0,0,120,12,124,204,204,118,0,0,0,
    209.         0,0,56,8,16,0,0,120,12,124,204,204,118,0,0,0,
    210.         0,0,0,118,220,0,0,120,12,124,204,204,118,0,0,0,
    211.         0,0,6,12,24,0,0,120,12,124,204,204,118,0,0,0,
    212.         0,0,0,0,0,0,0,120,12,124,204,204,118,0,48,48,
    213.         54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
    214.         0,0,96,16,76,56,0,120,12,124,204,204,118,0,0,0,
    215.         0,0,7,1,110,56,0,120,12,124,204,204,118,0,0,0,
    216.         0,0,118,220,108,56,0,120,12,124,204,204,118,0,0,0,
    217.         0,0,12,16,108,56,0,120,12,124,204,204,118,0,0,0,
    218.         0,0,0,0,0,0,0,248,24,24,24,24,24,24,24,24,
    219.         255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    220.         1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,255,
    221.         255,255,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
    222.         0,7,6,6,6,6,6,6,6,6,6,6,7,1,0,0,
    223.         0,255,0,6,6,12,12,152,216,240,112,0,255,255,0,0,
    224.         192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,255,
    225.         0,0,0,0,108,56,0,120,12,124,204,204,118,0,48,48,
    226.         0,0,192,96,56,108,0,120,12,124,204,204,118,0,0,0,
    227.         0,0,7,1,58,108,0,120,12,124,204,204,118,0,0,0,
    228.         0,0,118,220,56,108,0,120,12,124,204,204,118,0,0,0,
    229.         0,0,6,12,56,108,0,120,12,124,204,204,118,0,0,0,
    230.         0,0,0,0,56,108,0,120,12,124,204,204,118,0,48,48,
    231.         0,0,192,96,48,0,0,124,198,254,192,198,124,0,0,0,
    232.         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,
    233.         0,0,56,8,16,0,0,124,198,254,192,198,124,0,0,0,
    234.         0,0,0,118,220,0,0,124,198,254,192,198,124,0,0,0,
    235.         0,0,6,12,24,0,0,124,198,254,192,198,124,0,0,0,
    236.         0,0,0,0,0,0,0,124,198,254,192,198,124,0,24,24,
    237.         0,48,24,12,56,108,0,124,198,254,192,198,124,0,0,0,
    238.         0,0,7,1,58,108,0,124,198,254,192,198,124,0,0,0,
    239.         0,0,118,220,56,108,0,124,198,254,192,198,124,0,0,0,
    240.         0,0,6,12,56,108,0,124,198,254,192,198,124,0,0,0,
    241.         0,0,0,0,56,108,0,124,198,254,192,198,124,0,24,24,
    242.         0,0,192,96,48,0,0,56,24,24,24,24,60,0,0,0,
    243.         0,0,56,8,16,0,0,56,24,24,24,24,60,0,0,0,
    244.         1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
    245.         255,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
    246.         255,128,128,128,128,128,128,159,159,128,128,128,128,128,128,255,
    247.         0,0,0,118,220,0,0,56,24,24,24,24,60,0,0,0,
    248.         0,0,6,12,24,0,0,56,24,24,24,24,60,0,0,0,
    249.         0,0,0,0,24,24,0,56,24,24,24,24,60,0,24,24,
    250.         0,0,192,96,48,0,0,124,198,198,198,198,124,0,0,0,
    251.         0,0,0,0,62,96,192,192,254,192,192,96,62,0,0,0,
    252.         0,0,56,8,16,0,0,124,198,198,198,198,124,0,0,0,
    253.         0,0,118,220,0,0,0,124,198,198,198,198,124,0,0,0,
    254.         0,0,6,12,24,0,0,124,198,198,198,198,124,0,0,0,
    255.         0,0,0,0,0,0,0,124,198,198,198,198,124,0,24,24,
    256.         0,0,192,96,56,108,0,124,198,198,198,198,124,0,0,0,
    257.         0,0,7,1,58,108,0,124,198,198,198,198,124,0,0,0,
    258.         0,0,118,220,56,108,0,124,198,198,198,198,124,0,0,0,
    259.         0,0,6,12,56,108,0,124,198,198,198,198,124,0,0,0,
    260.         0,0,0,0,56,108,0,124,198,198,198,198,124,0,24,24,
    261.         0,0,192,96,48,3,1,126,198,198,198,198,124,0,0,0,
    262.         0,0,56,8,16,3,1,126,198,198,198,198,124,0,0,0,
    263.         0,0,118,220,0,3,1,126,198,198,198,198,124,0,0,0,
    264.         0,0,6,12,24,3,1,126,198,198,198,198,124,0,0,0,
    265.         0,0,0,0,0,3,1,126,198,198,198,198,124,0,24,24,
    266.         0,0,192,96,48,0,0,204,204,204,204,204,118,0,0,0,
    267.         0,0,0,0,0,254,0,0,254,0,0,254,0,0,0,0,
    268.         0,0,56,8,16,0,0,204,204,204,204,204,118,0,0,0,
    269.         0,0,118,220,0,0,0,204,204,204,204,204,118,0,0,0,
    270.         0,0,6,12,24,0,0,204,204,204,204,204,118,0,0,0,
    271.         0,0,0,0,0,0,0,204,204,204,204,204,118,0,48,48,
    272.         0,0,192,96,48,3,1,206,204,204,204,204,118,0,0,0,
    273.         0,0,56,8,16,3,1,206,204,204,204,204,118,0,0,0,
    274.         0,0,118,220,0,3,1,206,204,204,204,204,118,0,0,0,
    275.         0,0,6,12,24,3,1,206,204,204,204,204,118,0,0,0,
    276.         0,0,0,0,0,3,1,206,204,204,204,204,118,0,48,48,
    277.         0,0,192,96,48,0,0,198,198,198,198,126,6,12,248,0,
    278.         0,0,56,8,16,0,0,198,198,198,198,126,6,12,248,0,
    279.         0,0,0,118,220,0,0,198,198,198,198,126,6,12,248,0,
    280.         0,0,6,12,24,0,0,198,198,198,198,126,6,12,248,0,
    281.         0,0,0,0,0,0,0,198,198,198,198,126,4,12,251,3,
    282.         0,254,1,0,0,0,0,0,0,0,0,1,254,0,0,0
    283.     };
    284.     textmode(C80);
    285.     asm{
    286.             cli            
    287.             mov dx,0x3c4   
    288.             mov ax,0x100   
    289.             out dx,ax
    290.             mov ax,0x402   
    291.             out dx,ax
    292.             mov ax,0x704   
    293.             out dx,ax
    294.             mov ax,0x300   
    295.             out dx,ax
    296.  
    297.             mov dx,0x3ce   
    298.             mov ax,0x204   
    299.             out dx,ax
    300.             mov ax,0x5     
    301.             out dx,ax
    302.             mov ax,0x406   
    303.             out dx,ax
    304.         }
    305.         for(i=0;i<256;++i)
    306.             for(j=0;j<16;++j)
    307.                 pokeb(0xa000, i*32+j, vnfont[i*16+j]); 
    308.     asm{
    309.             mov dx,0x3c4
    310.             mov ax,0x100   
    311.             out dx,ax
    312.             mov ax,0x302   
    313.             out dx,ax
    314.             mov ax,0x304   
    315.             out dx,ax
    316.             mov ax,0x300   
    317.             out dx,ax
    318.  
    319.             mov dx,0x3ce
    320.             mov ax,0x4     
    321.             out dx,ax
    322.             mov ax,0x1005  
    323.             out dx,ax
    324.             mov ax,0xe06   
    325.             out dx,ax
    326.             cli
    327.         }
    328.     return 1;      
    329.     }
    330.  
    331.  #endif  /* __FONTVN_H */

    Thông tin:

    Kí tự trong bộ thư viện này tương thích với TCVN3(ABC). Điều này
    có nghĩa, khi soạn thảo mã nguồn, bạn hãy config trình editor sử dụng
    font .vntime hoặc .vnarial ...; tiếp đó hãy định cấu hình bộ gõ
    (Unikey) là TCVN3(ABC), rồi sử dụng để viết tiếng việt ra trong những
    hàm kết xuất dữ liệu ra màn hình của C.

    (nên dùng Notepad++ hoặc Notepad vì các editor trong IDE của TC3.0 không hỗ trợ việc soạn thảo mã tiếng Việt).

    Hướng dẫn sử dụng thư viện này:
    1 - Khi biên dịch, yêu cầu trình biên dịch cần hỗ trợ Assembly (mặc định hỗ trợ đó).

    2 - Trình biên dịch tương thích cho module này là trình biên dịch ứng dụng 16bit ví dụ TC3.0

    3 - Module trong file này được viết bằng hợp ngữ 16bit, bạn không thể dùng các trình biên dịch C 32 bit được.

    4 - Copy tệp này vào thư mục INCLUDES của thư mục chứa bộ Dịch C/C++.

    5 - Hãy sử dụng hệ thống soạn thảo mã lệnh khác. Ví dụ Notepad++, Notepad; sử dụng font .VnTime , Unikey để soạn thảo tiếng Việt.

    6 - Khi viết chương trình hãy thực hiện: include <FONTVN.H>;

    7 - Trong hàm main(), trước mọi các thao tác hiển thị, hãy gọi hàm changeFont();

    8 - Bây giờ bạn có thể viết tiếng Việt ra màn hình trong những hàm kết xuất dữ liệu ra màn hình (ví dụ printf("Alo Alo Hì Hì")

    Việc sử dụng thư viện rất đơn giản, chỉ là include vào rồi thì gọi hàm changeFont() vậy thôi.

    Bạn chú ý kĩ cho tôi bước 5, 6, 7 đó là bước soạn thảo !!!

    chú ý thêm: khi gọi hàm này, các kí tự bảng mã ASCII mở rộng đã bị thay đổi. Để thiết lập lại bảng mã ASCII mở rộng mặc định, hãy sử dụng hàm:

    textmode(C80); để reset

    Tài liệu sưu tầm được.
    Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.
    Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Hôm trước em kiếm cái này quá trời luôn.Vào mấy diễn đàn thì ý kiến lung tung chẳng thấy cái gì có ích.May quá có anh Dr share.Thanks anh phát ^_^.Nhưng cái đoạn toàn số má kia em chẳng hiểu lắm.Nếu rảng anh có thể giải nghĩa chút không.Hoặc thành viên nào trong diễn đàn biết thì chỉ bảo với nhé.Thanks

  3. #3
    Ngày gia nhập
    12 2006
    Bài viết
    72

    Cái này của dr hay à nha, nhưng từ trước tới nay mình vẫn dùng vietres_phần mềm bán chạy nhất trong năm 1992 tại việt nam, theo quảng cáo là thế, phần mềm bao gồm bộ gõ và bộ font vn tương thích với dos, không biết code của nó có giống với code của dr ko nhỉ?

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,760

    DOS là hệ điều hành đơn nhiệm hoàn toàn. Nếu muốn gõ tiếng Việt thì không phải là đơn giản đâu. Nhưng thử cùng nghiên cứu xem. Dr chưa có biết cái này ah!
    Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.
    Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.

  5. #5
    Ngày gia nhập
    11 2007
    Nơi ở
    ha noi
    Bài viết
    4

    mình đã thử như bạn bảo nhưng chương trình ko hiện ra tiêng việt dù biên dịch ko báo lỗi.Mình đã bật unikey nhưng trong môi trương window chư ko fai trong môi trương dos.vì minh ko bit bật trong môi trường dos.
    đoạn code của mình đây .bạn nào thử rui thi bao cho mình với
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #include<fontvn.h>
    main(){
    changeFont();
    printf("minhf hif hif");
    getch();
    return 
    0;


  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Mặc định Tiếng Việt trong lập trình C | Tiếng Việt trong lập trình C++

    Bạn dùng notepad ấy(hoặc cái khác cũng được như notepad ++ chẳng hạn).Rùi coding với font vntime.Bộ gõ TCVN3(ABC) làm theo hướng dẫn của Dr là được mà

  7. #7
    Ngày gia nhập
    11 2007
    Nơi ở
    ha noi
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi Alviss Xem bài viết
    Bạn dùng notepad ấy(hoặc cái khác cũng được như notepad ++ chẳng hạn).Rùi coding với font vntime.Bộ gõ TCVN3(ABC) làm theo hướng dẫn của Dr là được mà
    bạn ơi dùng notepad coding với font vntime tức là thế nào bạn có thể chỉ bảo rõ ko.mình chưa làm bao jo nen ko bit lam thế nào.có fai là dùng notepad để soạn thảo rui save dưới dạng .cpp sao đó mở bằng TC đúng ko bạn

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    uh đúng rùi đó bạn.Bật Unikey với bộ gõ TVCN3.Còn notepad là .vntime.Bạn viết code trên notepad rùi mở bằng TC là được
    * Chúc bạn thành công

  9. #9
    Ngày gia nhập
    11 2007
    Nơi ở
    ha noi
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi Alviss Xem bài viết
    uh đúng rùi đó bạn.Bật Unikey với bộ gõ TVCN3.Còn notepad là .vntime.Bạn viết code trên notepad rùi mở bằng TC là được
    * Chúc bạn thành công
    bạn ơi mình gõ = notepad rui và cũng chạy được rùi nhưng mình muốn hỏi thêm 1 ý nữa là : mình định xây dựng từ điển việt anh ,làm thế nào để người dùng có thể nhập vào 1 chuỗi = tiếng việt từ file .exe của mình trên nền dos chứ ko fai qua notepad nữa

  10. #10
    Ngày gia nhập
    12 2007
    Bài viết
    29

    C Code:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <fontvn.h>
    4.  
    5.  
    6. void main ()
    7. {
    8. changeFont();
    9. printf ("chµo b¹n !\n");
    10. system ("pause");
    11. }
    Mình làm ko dc, nó báo 78 error(s), 1832 warning(s)
    Đã được chỉnh sửa lần cuối bởi Alviss : 12-01-2008 lúc 10:24 PM.

Các đề tài tương tự

  1. Trả lời: 0
    Bài viết cuối: 18-04-2012, 12:24 PM
  2. Dịch các bài hướng dẫn trong C# từ tiếng Việt sang tiếng Anh!!!
    Gửi bởi khoaimon trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 10
    Bài viết cuối: 06-01-2011, 11:27 AM
  3. Dịch tiếng Anh | Phương pháp dịch tiếng anh trong IT
    Gửi bởi annie trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 21
    Bài viết cuối: 13-08-2010, 12:47 AM
  4. Code chương trình giao tiếp giứa 2 tiến trình trong Windows
    Gửi bởi cutithongtin trong diễn đàn Thắc mắc chung
    Trả lời: 14
    Bài viết cuối: 19-04-2010, 08:51 AM
  5. Học tiếng Anh | Bí quyết trong học tiếng Anh.
    Gửi bởi Kevin Hoang trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 22
    Bài viết cuối: 13-04-2009, 08:26 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn