לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 19-02-2007, 20:12
צלמית המשתמש של maind
  maind maind אינו מחובר  
 
חבר מתאריך: 08.10.02
הודעות: 827
פירוש קוד VB (DOT.net)

שלום יש לי קוד שאני מנסה לברר מה הוא עושה, הוא לא כל כך קשה לפי ההגיון אבל יש כמה דברים שאני לא מבין בו:

קוד:
public string encode(string str) { int num1 = str.Length; byte[] buffer1 = new ASCIIEncoding().GetBytes(str); . . . buffer2[num2] = (byte) ((((buffer1[num5] + buffer2[num4]) + buffer1[num3]) + 1) / 3); . . . str = new ASCIIEncoding().GetString(buffer2); return str; }


למשל מה עושה כל אחד מהפונקציות האלה:

ומה ה Byte פה עושה ואם זה כפל כלפי מה שסוגריים מולו:
קוד:
buffer2[num2] = (byte) (((buffer1[num5] + buffer1[num3]) + 1) / 2);

ושני אלה:
קוד:
byte[] buffer1 = new ASCIIEncoding().GetBytes(str); byte[] buffer2 = new byte[6];



כמו כן הנה הפונקיציות:
קוד:
public ASCIIEncoding() : base(0x4e9f) { } ---------------------------------------- public virtual byte[] GetBytes(string s) { if (s == null) { throw new ArgumentNullException("s", Environment.GetResourceString("ArgumentNull_String")); } char[] chArray1 = s.ToCharArray(); return this.GetBytes(chArray1, 0, chArray1.Length); } ---------------------------------------------------------
_____________________________________
Error: Keyboard not found
Press F1 to continue


נערך לאחרונה ע"י Humbug בתאריך 11-12-2007 בשעה 17:30. סיבה: נערך לבקשת המשתמש
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 19-02-2007, 22:13
צלמית המשתמש של Humbug
  משתמש זכר Humbug Humbug אינו מחובר  
אדמין לשעבר
 
חבר מתאריך: 25.10.01
הודעות: 20,292
תשובה
בתגובה להודעה מספר 1 שנכתבה על ידי maind שמתחילה ב "פירוש קוד VB (DOT.net)"

קוד:
ASCIIEncoding().GetString(buffer2);


האובייקט ASCIIEncoding כולל מספר Static Methods לטיפול במחרוזות ותווים.
הפונקציה שאתה משתמש בה, GetString, מקבלת באפר של בתים ומחזירה
string שכולל את התוים שבבאפר.

קוד:
buffer2[num2] = (byte) (((buffer1[num5] + buffer1[num3]) + 1) / 2);


זה נקרא Casting. הכוונה היא, שאתה לוקח סוג משתנה מסויים (type) במקרה הזה, integer
וממיר אותו לסוג משתנה אחר (במקרה הזה byte). אתה עשוי לשאול את עצמך - למה בעצם מה
שיש שם זה int ולא byte, שכן buffer1 הוא מערך של בתים.
פעולת החיבור והחילוק בסוף מחזירים int (ולא double, שכן החילוק נעשה על שלמים
כאשר הסוג של המחולק הוא integer).
קוד:
byte[] buffer1 = new ASCIIEncoding().GetBytes(str); byte[] buffer2 = new byte[6];


כאן בעצם עושים את ההפך של GetString. הפונקציה ממירה מחרוזת לבאפר.
_____________________________________
דורון

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 20-02-2007, 11:04
צלמית המשתמש של maind
  maind maind אינו מחובר  
 
חבר מתאריך: 08.10.02
הודעות: 827
.
בתגובה להודעה מספר 2 שנכתבה על ידי Humbug שמתחילה ב "תשובה"

ציטוט:
תודה רבה!, עכשיו אני מנסה להעביר את זה לשפה אחרת אבל לא ממש הבנתי חלק מההסבר שלך כי אני לא הכי מתמצא בסוגי המשתנים, אז ככה:

קוד:
ASCIIEncoding().GetString(buffer2);



האובייקט ASCIIEncoding כולל מספר Static Methods לטיפול במחרוזות ותווים.
הפונקציה שאתה משתמש בה, GetString, מקבלת באפר של בתים ומחזירה
string שכולל את התוים שבבאפר.
אז ASCIIEncoding מבחינתי לא מהווה משהו חובה לשפה שאני הופך אליה, כי היא רק נותנת לך לעשות את מה שיש בהמשך לא?
וGETstrings מחזיר את הביטים כSTRing, אם כן עכשיו ב buffer 1 יש עכשיו את הביטים האלה, הם יכולים להיות מספרים באיזה תחום?
קוד:
buffer2[num2] = (byte) (((buffer1[num5] + buffer1[num3]) + 1) / 2);



זה נקרא Casting. הכוונה היא, שאתה לוקח סוג משתנה מסויים (type) במקרה הזה, integer
וממיר אותו לסוג משתנה אחר (במקרה הזה byte). אתה עשוי לשאול את עצמך - למה בעצם מה
שיש שם זה int ולא byte, שכן buffer1 הוא מערך של בתים.
פעולת החיבור והחילוק בסוף מחזירים int (ולא double, שכן החילוק נעשה על שלמים
כאשר הסוג של המחולק הוא integer).
בחילוק הזה יכול לצאת מספר שהוא 1.333 לא?
ומה ההבדל בין byte לINT? הbyte באיזה תחום הוא? וINT?
קוד:


byte[] buffer1 = new ASCIIEncoding().GetBytes(str); byte[] buffer2 = new byte[6];



כאן בעצם עושים את ההפך של GetString. הפונקציה ממירה מחרוזת לבאפר.
מה זה BUFFER?




הבעיה היא שההסבר שלך יותר מידי תלוי בהבנת VB (או C?) שאני לא יודע, אם אפשר הסבר יותר לעומק, פשוט אני יודע שלפונקיה שהוא עושה נכנס STRING של 6 מספרים ויוצר STRING אחר של 6, אני רואה את החשבון שהוא עושה אבל אני לא מבין את כל המשתנים שם. אולי דוגמא עם כמה STRINGים של 6 מספרים, לדוגמא כמכניסים לפונקציה:
023860
265020
337739
אחד מאלו (אני יודע כבר את התשובה אבל אני מנסה להבין את הפעולה).


תודה רבה!
_____________________________________
Error: Keyboard not found
Press F1 to continue

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 13:44

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר