ABA


"שאלה בקשר לגדלים של קבצים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #8011 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 8011
chenke 
חבר מתאריך 1.7.02
730 הודעות
   16:20   23.02.04   
אל הפורום  
  שאלה בקשר לגדלים של קבצים  
 
   כתבתי תוכנית שמקבלת קובץ שמכיל רשימה של קבצים בתקייה שנוצרה באמצעות הפקודה Dir >list.dat, שואלת אות איזה גודל תקייה אתה מעוניין (מבחינת מקום שהקבצים תופסים) ובסוף שהיא גומרת לרוץ היא מחזירה קובץ שמכיל רשימה של קבצים שאותם יש להעביר מהתקייה כדי שתהיה בגודל המבוקש. הגדלים הם בבטים וכך גם הקלט לתוכנית הוא בבטים, לדוגמא: אם רוצים תקייה בגודל 692MB,אז הקלט לתוכנית הוא 692000000. הגודל הוא בבטים, כיוון שכך מוצג גודל קובץ בדוס. הבעייה היא שאחרי שהתוכנית רצה ונתנה את קובת התוצאה, אז אם מעבירים מהתקייה את הקבצים שבקובץ התוצאה, נשארת תקייה בגודל פחות ממה שביקשו, לדוגמא: רציתי תקייה בגדול 692MB וקיבלתי תקייה בגודל 660MB.

מה ניתן לעשות כדי לתקן את התוכנית (שכתובה בשפת מקרואים שדיי דומה ל- C) ?

חן.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הבעייה נובעת מטעות מתימטית פשוטה: Dudenland 23.02.04 21:27 1
     בהחלט SpyCop 23.02.04 22:32 2
         תודה לשניכם,! chenke  24.02.04 07:25 3
             להכפיל פעמיים ב-1024 liranr 24.02.04 08:03 4
                 או יותר הגיוני: Dudenland 24.02.04 18:58 5

       
Dudenland

   21:27   23.02.04   
אל הפורום  
  1. הבעייה נובעת מטעות מתימטית פשוטה:  
בתגובה להודעה מספר 0
 
   כפי שציינת, נתת כקלט לתוכנה שלך את המספר 692000000, כגודל לתקייה שיש ליצור, בעוד מחשבתך הייתה לגודל של 692MB.
הטעות המתימטית היא זו: 1MB = 2^10KB = 2^20B.
תעשה חשבון פשוט, ותראה ש-692000000 Byte שווים בעצם לכמעט 660 MB, ולא ל-692...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SpyCop

   22:32   23.02.04   
אל הפורום  
  2. בהחלט  
בתגובה להודעה מספר 1
 
   חלק את המספר פעמיים ל 1024 ותגיע לזה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
chenke 
חבר מתאריך 1.7.02
730 הודעות
   07:25   24.02.04   
אל הפורום  
  3. תודה לשניכם,!  
בתגובה להודעה מספר 2
 
   אז נאמר שאני רוצה לשנות את התוכנית שלי, כך שתקבל את גודל התקייה ב- MB (מגה-בייטים) ותמיר אותו לבייטים, איזה חישוב אני צריך לעשות?

תודה,

חן.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranr

   08:03   24.02.04   
אל הפורום  
  4. להכפיל פעמיים ב-1024  
בתגובה להודעה מספר 3
 
   או (יותר הגיוני) פעם אחת ב- 1048576


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   18:58   24.02.04   
אל הפורום  
  5. או יותר הגיוני:  
בתגובה להודעה מספר 4
 
   להזיז ב-20:

;x <<= 20


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net