Dasturlarni ruslashtirish - bu, ayniqsa chet tillarini bilmaydigan foydalanuvchilar uchun muhim masala. Ko'pincha Delphi dasturi foydalanuvchilari uni qanday ruslashtirishni hayron qilishadi.
Ko'rsatmalar
1-qadam
Gap shundaki, OEM va ANSI kodlashlari (unda Delphi ishlaydi) mos kelmaydi. Ular kirilcha belgilarning turli pozitsiyalariga ega. ANSI-da OEM ko'rsatmaydigan aksent belgilar mavjud. Ammo ikkinchisida jadvallarni ko'rsatish uchun ajralmas bo'lgan soxta grafik belgilar mavjud, ammo bu juda ham talab qilinmaydi. Shunga qaramay, shuni ta'kidlash joizki, umuman olganda, ushbu jadvallar bir-birining o'rnini bosadi - ular matnli ma'lumotlarni namoyish qilish uchun bir xil imkoniyatlarga ega.
2-qadam
Ruslashtirish masalasini hal qilishning bir necha yo'li mavjud. Birinchisi OEM muharririda ishlaydi. Dastlab siz OEM kodlashida ishlaydigan muharrirda kodlar jadvali uchun muhim bo'lgan dastur matnining qismlarini tayyorlashingiz mumkin. Juda sodda, ammo ayni paytda samarali echim. Bu, ayniqsa, ma'lumotlarning chiqishi juda talab qilinadigan mahalliy yordam dasturlarini yozish uchun juda muhimdir.
3-qadam
Ushbu usulning kamchiliklariga kelsak, bu erda siz hayotda juda zo'r bo'lgan qo'ng'iroq va hushtak chalishlari bilan ko'pchilik uchun tanish bo'lgan IDEdan tashqarida ishlarni belgilashingiz mumkin, masalan: kodlash, kompilyatsiya, disk raskadrovka. Va bularning barchasi "bitta shishada" deyilgan. Bundan tashqari, loyiha o'sib borishi bilan, ANSI kodlash yordamida yaratilgan uchinchi tomon mag'lubiyat manbalaridan foydalanishni boshlaganda ma'lum qiyinchiliklar o'zini namoyon qila boshlaydi.
4-qadam
Agar loyihada to'g'ridan-to'g'ri kodga kiritilgan satrlar bo'lmasa (qattiq kodlangan), siz barcha mag'lubiyat manbalarini alohida modullarga ko'chirib, ularni kerakli kodlash joyiga joylashtirishingiz mumkin. Yaxshiyamki, tarmoq fayllarni kodlashni o'zgartiradigan yordamchi dasturlarga to'la.
5-qadam
Endi filtrlash protseduralaridan foydalanish haqida. Windows API-da ANSI va OEM kodlashlarini bir-biriga o'zgartirishga yordam beradigan funktsiyalar mavjud. Bular OemToChar va CharToOem. Ular Writeln ('text') fragmentlarini almashtirish bilan matnni namoyish qilish uchun ishlatiladi; quyidagi qismlarga:
MyWriteln protsedurasi (const S: string);
var
NewStr: string;
boshlash
SetLengtn (NewStr, uzunlik (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
oxiri;
MyWriteln ("matn");
6-qadam
Ushbu usulning kamchiliklariga kelsak, bu kengaytirilgan Yozish sintaksisidan foydalanish va protseduralarni filtrlash uchun chaqiruv bilan matnni aralashtirib yuborish mumkin emas. Yozish uchun bir nechta qo'ng'iroqlar bilan tugallangan dasturni ruslashtirish kerak bo'lganda, bu jiddiy muammo bo'lib qoladi.
7-qadam
Va nihoyat, ahamiyatsiz emas, Windows API yordamida konsol kodi sahifasini o'zgartiring. Aytgancha, bu usul hujjatlashtirilgan. Faqatgina xususiyat bu xususiyat Windows 95 va 98 da ishlamasligi. Agar dastur faqat Windows NT da ishlasa ham, bu holda siz SetConsoleOutputCP funktsiyasidan foydalanishingiz mumkin (866).