ABA


"שאלה לגבי עבודה עם קבצים ב- C, (קריאה ממיקום מסויים בקו"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13222 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13222
chenke 
חבר מתאריך 1.7.02
730 הודעות
   15:51   25.04.06   
אל הפורום  
  שאלה לגבי עבודה עם קבצים ב- C, (קריאה ממיקום מסויים בקו  
 
   ערכתי לאחרונה בתאריך 25.04.06 בשעה 15:53 בברכה, chenke
 
בץ)
אני כותב לקובץ בעזרת הקוד הבא:

char dataFileName="dataFile.dat";
if ((indexFile=fopen(indexFileName,"wb"))!=NULL)
fprintf(indexFile,"%s%d",dataFileName,1);
מבדיקה שעשיתי הוא כותב כמו שצריך.

בשלב מאוחר יותר, אני מעוניין לקרוא את הנתון השני שכתבתי לקובץ (השלם), ולכן אני משתמש בקוד הבא:
int numberOfRecordsInIndex=0;
fseek(indexFile,sizeof(dataFileName),SEEK_SET);
fscanf(indexFile,"%d",numberOfRecordsInIndex);
printf("\nnumberOfRecordsInIndex=%d\n",numberOfRecordsInIndex);
הבעייה היא שהיישום עף בשורה של ה- fscanf. אני מניח שה- fseek, לא מציבה את מצביע הקובץ במקום הנכון (ניסיתי גם sizeof(dataFileName)+1,
sizeof(dataFileName)-1, אבל זה לא עזר).
יש למשהוא רעיון?


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  עשית פה בילבול אחד שלם עם השם של הקובץ nesher  25.04.06 16:04 1
     תודה על התגובה, אבל אין שום בלבול עם המשתנים chenke  25.04.06 18:32 2
         אהה אוקיי, אז תקן את ה-offset nesher  25.04.06 19:22 3
             וזאת בדיוק הבעייה-איך מתקנים את ה- offset chenke  25.04.06 22:17 4

       
nesher 

   16:04   25.04.06   
אל הפורום  
  1. עשית פה בילבול אחד שלם עם השם של הקובץ  
בתגובה להודעה מספר 0
 
   ועם המשתנים פה
ברגע שכתבת משהו לקובץ הוא רושם הכל בשורה אחת אלא אם כן הוספת
\n\r או רק \n
אז ה-fscanf שלך אמור להכיל עקרונית קריאה של כל הנתונים
אז אם זה הנתון השני אז אתה אמור לשים 2 משתנים לקריאה
וגם אתה צריך ליצור משתנה מסוג FILE* ואיתו להשתמש

FILE* sf = fopen("dataFile.dat","wb");
if (sf != NULL)
{
fseek(....);
fscanf(...);
printf(...);
close(sf);
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
chenke 
חבר מתאריך 1.7.02
730 הודעות
   18:32   25.04.06   
אל הפורום  
  2. תודה על התגובה, אבל אין שום בלבול עם המשתנים  
בתגובה להודעה מספר 1
 
   indexFile, הוא משתנה מסוג *FILE, פשוט לא ציינתי את זה, dataFileName, הוא משתנה מסוג מחרוזת והוא אחד מהנתונים שנרשמים בקובץ שמיוצג ע"י indexFile. אינני מעוניין לקרוא את שני המשתנים שכתבתי לקובץ, אלא רק את המשתנה השני ולכן אני משתמש ב- fseek, רק שכנראה עם offset לא מתאים.


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

   19:22   25.04.06   
אל הפורום  
  3. אהה אוקיי, אז תקן את ה-offset  
בתגובה להודעה מספר 2
 
   או שתעשה את ה-fscanf כמו שאמרתי... ואז די בטוח שלא יהיו בעיות
ולא צריך לתקן את ה-offset


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
chenke 
חבר מתאריך 1.7.02
730 הודעות
   22:17   25.04.06   
אל הפורום  
  4. וזאת בדיוק הבעייה-איך מתקנים את ה- offset  
בתגובה להודעה מספר 3
 
  


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

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

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



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