Trang 2 / 2 FirstFirst 12
Hiển thị kết quả từ 11 đến 18 / 18

Chủ đề: Tiếng Việt trong C

  1. #11
    Tham gia
    23-02-2003
    Location
    Melbourne
    Bài viết
    5,201
    Like
    0
    Thanked 24 Times in 18 Posts
    Quote Được gửi bởi ohyesssvn View Post
    Nguyên tắc là làm được (Người ta làm được, tui ko làm được)

    Các chữ cái tiếng Việt thể hiện đủ trong khoảng 255 ký tự ASCII trong DOS

    Ví dụ sử dụng bộ font của VietRes để hiển thị. Khi hiển thị văn bản theo UNICODE lên màn hình thì người ta làm 1 phép ánh xạ từ bộ mã UNICODE trong văn bản sang bộ mã của VietRes để in lên màn hình.
    Tôi chỉ bảo là chuyện cười chứ ko nói làm ko được
    Bộ font 8 bit của DOS ko đủ để hiển thị Tiếng Việt Tiếng Việt có 12 nguyên âm, tính cả chữ hoa sẽ thành 24, có 6 dấu. Chỉ tính riêng tổ hợp nguyên âm và dấu đã là 144 ký tự, trong khi đó bảng mã ASCII chỉ có 128 ký tự cuối là có thể sử dụng để thay thế, 128 ký tự đầu thì đã có 96 ký tự thường được sử dụng trong văn bản, 32 ký tự điều khiển mà in ra màn hình sẽ biết mùi ngay. các ứng d5ung TV cũ trên DOS có 1 khiếm khuyết rất dễ nhận thấy các ký tự nguyên âm viêt hoa có dấu đều bị biến thành ký tự thường. Chỉ có duy nhất 1 cách là dùng chế độ đồ họa và dùng 1 bộ font thích hợp => đây cũng là cách của Windows.
    còn trên DOS chưa có thì chương trình của mình tự implement cái đó luôn cũng được chứ bạn
    Implement là điều hoàn toàn có thể, Unicode hay ASCII thì khi lưu xuống đĩa vẫn là từng byte thôi, vẫn đọc được, nhưng quan trọng là implement để làm gì? Chuyện cười chính là chỗ đó.

  2. #12
    Tham gia
    21-08-2007
    Location
    Sài Gòn hoa lệ
    Bài viết
    2,164
    Like
    0
    Thanked 2 Times in 2 Posts
    Quote Được gửi bởi jiSh@n View Post
    Implement là điều hoàn toàn có thể, Unicode hay ASCII thì khi lưu xuống đĩa vẫn là từng byte thôi, vẫn đọc được, nhưng quan trọng là implement để làm gì? Chuyện cười chính là chỗ đó.
    Implement để có thể hiển thị tiếng Việt Unicode trên DOS đó bác

  3. #13
    Tham gia
    24-07-2007
    Bài viết
    108
    Like
    0
    Thanked 0 Times in 0 Posts
    Nói chung thì sức sáng tạo của con người là vô tận ^_^

  4. #14
    Tham gia
    01-10-2006
    Bài viết
    92
    Like
    3
    Thanked 5 Times in 5 Posts
    xài mấy cái của win đi bạn, nếu là bài tập trong dos thì ngày trươc có cái vietres(không nhớ lắm) là nhúng tiếng việt trong môi trường dos(8 bit), còn nếu muốn unicode, thì hơi bị phức tạp, bạn dùng các ngôn ngữ của win là hợp nhất, như c#, đặc biệt bây giờ mình làm một cái liên quan đến xử lý chuỗi nhiều, c chỉ cho string là 256, trong khi c# cho độ dài đến 2Gb để lưu trữ 1 string ( mình đã thử một string load từ text 17 Kb ), xài sướng lắm , mà nếu bạn sắp xếp tiếng việt thì lại còn phải xây dựng bảng alphabet nữa cơ, nói chung, chẳng ai làm cái của bạn nói trong dos cả, mình nghĩ 99% bạn hỏi cũng chỉ để đấy thôi, tham khảo một chút chứ làm thì ........
    Các phần mềm trong dos chạy chậm hơn win do sử dụng được ít tài nguyên hệ thống, như cái đồ hoạ chỉ lên được độ phân giải tối thiểu( chả ma nào dùng), bị giới hạn bộ nhớ đệm, và nói chung chỉ lập trình hệ thống mới dùng c

  5. #15
    Tham gia
    16-07-2004
    Bài viết
    662
    Like
    0
    Thanked 3 Times in 3 Posts
    Quote Được gửi bởi ohyesssvn View Post
    Nguyên tắc là làm được (Người ta làm được, tui ko làm được)

    Các chữ cái tiếng Việt thể hiện đủ trong khoảng 255 ký tự ASCII trong DOS

    Ví dụ sử dụng bộ font của VietRes để hiển thị. Khi hiển thị văn bản theo UNICODE lên màn hình thì người ta làm 1 phép ánh xạ từ bộ mã UNICODE trong văn bản sang bộ mã của VietRes để in lên màn hình.

    ê ê ê xạo quá àh nhe , UNICODE font 1 ký tự 16 bít đó nha cha nội , làm gì mà ánh xạ VietRes lung tung thế , với lại bộ Font trong Video card dành cho DOS mỗi ô nhớ trong Video card là 1 byte thôi nhé , nói bậy óanh chết bây giờ .

    Viết tiếng việt trong TUrbo C (DOS) thì dủng ASCII font thôi ko có UNICODE ,sau này khi windows ra đời mới có UNICODE .
    có 1 cách để soạn tiếng việt dùng Font của Viẹtres trong Turbo C là viết Memory Resident Program ,load Font Việt Res Vào hệ thống ,chặn ngắt 09h ,và dùng cách thao tác trong resident Program để chỉnh sửa ký tự trong keyboard bufer (BIOS) 0x40h ,nói chung các thao tác này là do mình viết dùng trick để làm .

  6. #16
    Tham gia
    14-12-2004
    Bài viết
    216
    Like
    0
    Thanked 4 Times in 4 Posts
    Quote Được gửi bởi whitepenguin View Post
    ê ê ê xạo quá àh nhe , UNICODE font 1 ký tự 16 bít đó nha cha nội , làm gì mà ánh xạ VietRes lung tung thế , với lại bộ Font trong Video card dành cho DOS mỗi ô nhớ trong Video card là 1 byte thôi nhé , nói bậy óanh chết bây giờ .

    Viết tiếng việt trong TUrbo C (DOS) thì dủng ASCII font thôi ko có UNICODE ,sau này khi windows ra đời mới có UNICODE .
    có 1 cách để soạn tiếng việt dùng Font của Viẹtres trong Turbo C là viết Memory Resident Program ,load Font Việt Res Vào hệ thống ,chặn ngắt 09h ,và dùng cách thao tác trong resident Program để chỉnh sửa ký tự trong keyboard bufer (BIOS) 0x40h ,nói chung các thao tác này là do mình viết dùng trick để làm .
    Thiếu trí tưởng tượng (chọc lại thôi nha, đừng giận)

    Giả sử nhập từ bàn phím chữ a mã ASCII là AA (ko biết, giả sử là vậy) tương ứng với đó chữ a trong bộ font Vietres là BB và trong UBICODE là AAAA

    Khi phím a được bấm, chương trình sẽ ghi lên màn hình BB và ghi vào văn bản là AAAA.

    Khi đọc từ văn bản ra, thấy 1 WORD là AAAA chương trình sẽ ghi lên màn hình la BB.

  7. #17
    Tham gia
    20-10-2007
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Ok xài MS VC++ 6.0 lun đó. Vậy có ai gõ tiếng Việt dc ko,chỉ cho tui với!

  8. #18
    Tham gia
    05-09-2007
    Location
    HCMC
    Bài viết
    106
    Like
    0
    Thanked 5 Times in 2 Posts
    VC++ 6.0 không hỗ trợ soạn thảo Unicode ngay trong đó nhưng API hỗ trợ tốt Unicode, và chấp nhận dạng UTF-8 dùng Unikey gõ với bảng mã là Unicode C String. Bạn nhớ lưu file dạng UTF-8, thiết lập macro define UNICODE và _UNICODE, bỏ _MBCS, dùng các kiểu dữ liệu và hàm hỗ trợ Unicode như TCHAR thay CHAR, LPTSTR thay LPSTR ..., dùng các hàm hỗ trợ Unicode như lstrlen thay strlen ... Hay có thể dùng hàm MultiByteToWideChar để chuyền hằng ký tự sang dạng Unicode rồi gán cho các phần muốn hiển thị.

    Chi tiết có thể tìm trên PCWorld A, có 2 bài khá chi tiết về vấn đề này.
    http://www.pcworld.com.vn/pcworld/ma...5f5e5c56585956
    http://www.pcworld.com.vn/pcworld/ma...5f5e5c56565656
    Phần common control cũng có trong đó luôn. Phần MessageBox bạn có thể hook message CBT. Xem thêm MSDN về các phần đó. Mình nghĩ hai bài viết trên PCWorld là chi tiết lắm rồi, cũng không khó thực hiện.

Trang 2 / 2 FirstFirst 12

Bookmarks

Quy định

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