איפוס תוכניות הוא עניין חשוב, במיוחד עבור משתמשים שאינם דוברי שפות זרות. לעתים קרובות למדי, משתמשי תוכניות דלפי תוהים כיצד ניתן לבצע אישור נוסף.
הוראות
שלב 1
העניין הוא שקידודי OEM ו- ANSI (בהם דלפי עובדת) אינם תואמים. יש להם עמדות שונות של סמלים קיריליים. ל- ANSI יש גם תווים מודגשים, מה ש- OEM לא עושה. אבל השני מכיל סמלים פסאודו-גרפיים, שהם חיוניים להצגת טבלאות, אם כי זה לא מאוד מבוקש. ובכל זאת ראוי לציין כי באופן כללי, טבלאות אלה ניתנות להחלפה - יש להן אותן אפשרויות להצגת מידע טקסט.
שלב 2
ישנן מספר דרכים לפתור את בעיית רוסיפיקציה. הראשון עובד בעורך OEM. תחילה ניתן להכין חלקים מטקסט התוכנית הקריטיים לטבלת הקוד בעורך שעובד בקידוד OEM. פיתרון פשוט למדי, אך יחד עם זאת יעיל. זה נכון במיוחד לגבי כתיבת כלי עזר מקומיים, שבהם בכל זאת נדרשת תפוקת מידע.
שלב 3
באשר לחסרונותיה של שיטה זו, כאן תוכלו לייעד עבודה מחוץ ל- IDE, המוכרת לרבים, על פעמוניה ושריקותיה הנהדרות בחיים, כגון: קידוד, קומפילציה, ניפוי באגים. וכל זה נאמר, "בבקבוק אחד." בנוסף, ככל שהפרויקט גדל, מתחילים להשתמש בקשיים מסוימים כאשר מתחילים להשתמש במשאבי מחרוזות של צד שלישי שנוצרו באמצעות קידוד ANSI.
שלב 4
אם הפרויקט אינו מכיל מחרוזות הכלולות ישירות בקוד (מקודד קשה), תוכל להעביר את כל משאבי המחרוזות למודולים נפרדים, ואז למקם אותם לקידוד הנדרש. למרבה המזל, הרשת מלאה בתכשירים המשנים את קידוד הקבצים.
שלב 5
עכשיו לגבי השימוש בהליכי סינון. ממשק ה- API של Windows מכיל פונקציות שיעזרו לך להמיר קידודי ANSI ו- OEM זה לזה. אלה OemToChar ו- CharToOem. הם משמשים להצגת טקסט עם החלפת קטעי Writeln ('טקסט'); לשברים הבאים:
הליך MyWriteln (קונסט S: מחרוזת);
var
NewStr: מחרוזת;
התחל
SetLengtn (NewStr, Length (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
סוֹף;
MyWriteln ('טקסט');
שלב 6
באשר לחסרונותיה של שיטה זו, אין אפשרות להשתמש בתחביר הכתב המורחב ולעומס בטקסט היישום עם קריאה לסינון הליכים. כאשר אתה צריך לרשום יישום מוגמר עם מספר שיחות לכתיבה, זה הופך לבעיה חמורה.
שלב 7
אחרון חביב, שנה את עמוד קוד המסוף באמצעות ממשק ה- API של Windows. דרך זו מתועדת, אגב. המלכוד היחיד הוא שהתכונה אינה פועלת ב- Windows 95 וב- 98. אם כי אם היישום יפעל באופן בלעדי ב- Windows NT, במקרה זה, אתה יכול להשתמש בפונקציה SetConsoleOutputCP (866).