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

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



  #3  
ישן 12-01-2011, 01:30
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 1 שנכתבה על ידי rndy1 שמתחילה ב "קליטה מקובץ(שפת C)"

אתה צריך כמה דברים.
1. לפתוח קובץ טקסט.
לצורך זה יש לפתוח ערוץ לקובץ (שזה בתאכלס מצביע לקובץ).
יש להשתמש בפונקציה fopen לצורך המטרה:
קוד PHP:
 FILEfile fopen ("myFile.txt""r"); 

אם הקובץ קיים וניתן לקריאה, המשתנה (מצביע לקובץ) יקבל ערך כלשהו. במידה ולא הצלחת לפתוח את הקובץ (כי הוא לא קיים בנתיב שהגדרת, או שהוא לא ניתן לפתיחה [למשל, הוא חסום ע"י המערכת כי תוכנית אחרת פתחה אותו כבר לקריאה]) המצביע יקבל את הערך NULL. יש לבדוק לפני המשך התוכנית, שאכן הצלחת לפתוח את הקובץ לקריאה.

2. קריאת המידע מהקובץ
לצורך זה ישנן מספר פונקציות שיאפשרו לך לסרוק את הקובץ ולאחסן את המידע שבו לתוך משתנים (כמו מערך דו-מימדי).
פונקציה אחת מאוד נוחה היא fscanf (כפי שהמליץ דוד למעלה).
היא טובה במידה ואתה יודע מראש את הפורמט של הקובץ (כלומר, את סדר הופעת המידע בו).
למשל, נניח ומדובר בקובץ אשר מכיל טבלה של מספרים המופרדים זה מזה באמצעות TABs ובכל שורה יש 5 עמודות של נתונים מספריים בלבד.
הסריקה באמצעות fscanf תראה משהו כזה:
קוד PHP:
 fscanf ("%d \t %d \t %d \t %d \t %d", &var1, &var2, &var3, &var4, &var5); 

דרך טיפה יותר נורמלית לעשות את זה, תהיה ע"י שימוש בלולאה מקוננת (כלומר, לולאה בתוך לולאה).
הלולאה הראשונה תרוץ על השורות, והלולאה השניה על העמודות בכל שורה.
קוד PHP:
 for (; !feof(file) ; i++)
{
    for (
j++)
    {
        
fscanf("%d", &matrix[i][j]) /* scan the number to the array */
        
fscanf("%c", &temp/* scan the delimiter to move the pointer to the next number */
    
}


הפונקציה feof תוודה שלא הגעת לתו eof אשר מסמן סוף קובץ.
המשתנה temp הוא סתם משתנה מסוג char שלתוכו נסרוק את התו המפריד בין המספרים (בין אם זה רווח בודד, טאב, פסיק, נקודה, מקף...).
אני לא קימפלתי ובדקתי את הקוד שלי, אני מקווה שהוא נכון כפי שהוא, וגם אם לא, אז זה יתן לך בערך את הכיוון.

בהצלחה!
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com


נערך לאחרונה ע"י Narxx בתאריך 12-01-2011 בשעה 01:33.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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