![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
14-03-2010, 20:02
|
|
|
חבר מתאריך: 14.03.10
הודעות: 9
|
|
סריקת דיסק לפי FAT - פונקציות ספציפיות
שלום רב,
רציתי לדעת אם יש מישהו שמתמצא בשפות תיכננות DOS,
הן עיליות כמו C/C++ או Pascal, והן שפות סף כמו
אסמבלי - ואם צריך, איך לעשות 'inline' כלומר לשלב
הוראות אסמבלי בתוך פונקציה של C או Pascal כפי
שאפשר לעשות בטורבו סי 3 וטורבו פסקל 7, בצורה כזאת
שהשפה העילית יכולה לשלוח לפונקציה פרמטרים ולקבל
ממנה ערכים חוזרים, ממש כמו פונקציה רגילה בשפה עצמה.
מה שאני מחפש זה דוגמאות קוד ו/או אפליקציה שלמה
(או חלקית) אשר יודעת לעבוד כמו Norton Ghost
במובן זה שהאפליקציה תדע לקחת ממחיצה נבחרת
בדיסק הקשיח, אך ורק סקטורים אשר יש בהם מידע,
וכמובן תתעלם מכל היתר - ותעתיק אותם למחיצה אחרת.
בהתחלה אני רוצה לעבוד רק עם פורמטים של FAT16
ו/או FAT32, אבל אשמח לתמוך גם ב-NTFS ואולי גם
ב-EXT של לינוקס.
1. פלטפורמות הפעלה:
- כמובן שהתוכנה תעבוד ממצב DOS נקי,
ולא מחלונות או כל-מיני שטויות מסוג זה
- ידוע לי ש-Ghost הבת-אלף יודעת לצרוב CD
ישר מ-DOS; מדהים אה? אבל אני לא צריך שום
דבר כזה (אלא אם מישהו מכיר דרך לעשות זאת)
2. הבעיה העיקרית:
- צריך לדעת את הסקטורים המלאים במיידי;
מדוע? מכיוון שאם נקרא סקטור אחרי סקטור,
במחיצה ש-80 אחוז ממנה ריק, זה ייקח שבוע,
מה גם שעלולה להיות פרגמנטציה.
- דוגמה טובה לתוכנה שעושה קריאה מהירה, לפחות
לפי הבנתי, היא Scandisk של DOS, אשר, ממש
כאשר היא מתחילה לבצע surface scan, היא מציגה
על המסך חלון גדול ובו טורים טורים ב-3 (או 4)
צבעים שונים, המייצגים את פריסת המידע הכללית
במחיצה הנבחרת.
3. אופציה אפשרית:
- לדעת באילו קבצים ו/או ספריות (פולדרים) אנו
נתקלים במהלך הקריאה; למה זה טוב? ובכן,
למשל אם נרצה להציג ו/או לקטלג את כל הקבצים
השמורים במחיצה הנבחרת. גם ל-Ghost כמדומני
יש איזה command line switch שעושה כנ"ל.
- מצד שני, גם כאן צריך איכשהו לפתור את
עניין הפרגמנטציה.
בקיצור ולעניין, כל רעיון רציני
ו/או הפניות (לינקים) לדוגמאות קוד,
על איך לקרוא סקטרוים מלאים בלבד,
אעריך מאוד.
רב תודות,
רמי מתחיל
|