שאלה

שאלה

האם אפשר לתכנת ב++C כתב עברי
(אני לא מומחה גדול אז אל תתנו לי דרכים מסובכות במיוחד
)
 
עקרונית אפשר,

אבל אם תיתן דוגמה איך אתה בדיוק רוצה להשתמש בעברית, ובאיזו סביבה אתה עובד (VSTUDIO? משהו אחר), אני אוכל להיות יותר ספציפי. רק זכור שיש בעיה גדולה *להציג* עברית באפליקציות CONSOLE. כתבתי על זה בהודעה הזו.
 
עקרונית אפשר,

אבל אם תיתן דוגמה איך אתה בדיוק רוצה להשתמש בעברית, ובאיזו סביבה אתה עובד (VSTUDIO? משהו אחר), אני אוכל להיות יותר ספציפי.
 
../images/Emo26.gif

תראה: אני ילד בן 11 וחצי ותכנתתי טריויה באנגלית בשפת ++visual c, ומה שאני רוצה זה להפוך את זה לעברית, אז אני צריך משהעו לא מסובך
אוקיי
 

tomashin

New member
רגע

אתה מתכוון לתכנת בעברית?אם הבנתי נכון אז לא קיים דבר כזה. אני זוכר שכתבו בפורום שרצו להכין גרסה עברית לPHP אם אני לא טועה. ויזואל סי פלוספלוס זה סביבת עבודה לחלונות ולא שפה.
 
התבלבלתי

אני רוצה לכתוב קוד מקור באנגלית, אבל שהטריויה תהיה בעברית
אל תתיחסו להודעה הקודמת שלי
 

tomashin

New member
ככה

אז התוכנית שלך כפי שאני רואה זו תוכנית קונסול. כמו שאינגולמו אמר יש בעייה בהצגת עברית למסך בתוכנית קונסול.
 
../images/Emo26.gif

לא הבנתי כלום מהשרשור שהיה שם
אם יש דרך פשוטה - שמשהו יכתוב לי אותה, אם אין אז תכתבו שאין
 
לא טענתי שזה מסובך...

רק תאמר לי האם האפליקציה שלך עובדת ב-CONSOLE MODE ("חלון DOS", מסך שחור) או בחלון של WINDOWS?
 

giladznaor

New member
ועד שאלה בנושא

אם כבר בתעסקים בנושא העברית, גם לי יש שאלה בנושא. אני כותב כמה תוכניות בC לאתר אינטרנט שלי שאמורות ליצור את דפי הHTML ע"פ מסד נתונים (כדי שניתן יהיה לעדכן את האתר בפשטות, ובמגבלות מסוימות, לא רק אני). הבעיה שלי היא איך לשלוח לדפדפן את העברית. מן הסתם מחרוזת רגילה מסוג לא מתאימה. אני זוכר שאמור להיות תקן ISO לטקסט, אבל לא איך משתמשים בו, ואם זה קשור בכלל.
 
זה קצת יותר מסובך...

קודם כל, אתה צריך להחליט על ה-ENCODING של הדף שלך. את זה אתה כותב ב-HEADER של ה-HTML. כל האתרים המודרנים כבר לא משתמשים ב-HEBREW ISO, אלא ב-UTF8. מאוד מומלץ. אז ה-HEADER שלך יראה משהו כזה:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </HEAD>​
דבר שני, אתה צריך לדאוג שתוכנת ה-C שלך תכתוב את הקובץ בפורמט UTF8. זה הקטע היותר מסובך כי אמנם זה קובץ טקסט רגיל, אבל יש לו HEADER מיוחד (BYTE ORDER MARK), ובנוסף, הפורמט הזה לא נתמך BUILT-IN ב-WIN32 API. אבל למזלך, כתבתי לפני חודשיים MFC CLASS (יורש מ-CFile) שמטפל בכל זה בשבילך
צור איתי קשר אם הפתרון הזה מתאים לך, ואשלח לך את הקוד.
 

giladznaor

New member
תודה!

"אבל למזלך, כתבתי לפני חודשיים MFC CLASS (יורש מ-CFile) שמטפל בכל זה בשבילך צור איתי קשר אם הפתרון הזה מתאים לך, ואשלח לך את הקוד." אבל מה הכיף בלקבל את הכל על מגש של כסף? אני מעדיף קודם כל לשבור את הראש לבד (אחרת איך לומדים?). אולי כשאני אסיים אני ארצה להציץ בקוד שלך
. תודה בכל מקרה. "יש לו HEADER מיוחד (BYTE ORDER MARK)" ממה שהספקתי לקרוא, בUTF-8 לא חובה לשים את זה בהתחלה, ובינתיים זה עובד לי, אבל אולי זה רק בגלל ההגדרות ששולחים לדפדפן. "הפורמט הזה לא נתמך BUILT-IN ב-WIN32 API" עוד לא בחרתי את השרת שעליו אני אשים את האתר, אבל באתר שבדקתי ברצינות יש גירסה מבוססת WIN2000 וגירסה מבוססת לינוקס, והגירסה השנייה יותר זולה בשני דולר לחודש, כך שכנראה שאני אבחר באופציה הזאת, ואז גם התוכנית צריכה להיות בפורמט של לינוקס. בכל מקרה, הנה מה שעשיתי בינתיים. זה ממש ממש בסיסי, אבל נראה לי שזה פחות או יותר מה שאני צריך, חוץ מהbidi, ואני מניח שזה יהיה די כאב ראש. #define UTF8_HEBREW (0x05D0) #define ASCII_HEBREW (128) void UTF8_HPutchar( unsigned char ch, FILE *output ) { unsigned char utf8_1, utf8_2; int utf_code, i; if ( ch <= 0x7F ) fputc(ch, output); else { utf_code = (ch - ASCII_HEBREW) + UTF8_HEBREW; clrscr(); // Work from right to left utf8_2 = 0x80; // 10XXXXXXb for ( i = 0; i < 6; i++ ) utf8_2 |= (utf_code&0x00FF) & (1<<i); utf8_1 = 0xC0; // 110XXXXXb for ( i = 0; i < 5; i++ ) utf8_1 |= (utf_code>>6) & (1<<i); fputc(utf8_1, output); fputc(utf8_2, output); } } תודה! נ.ב. איך מעבירים את הטקסט כאן בפורום לצד השני (לגבי הקוד מקור)
 
בהצלחה!

בשביל להעביר קוד לשמאל, לחץ על "תחילת קוד" ו"סיום קוד" בזמן כתיבת ההודעה (יש לך אופציות כאלה מתחת לחלון שבו אתה כותב את טקסט ההודעה.
 
למעלה