פורסם 2010 במאי 1215 שנים שלום רב!יש לי פונקציהvoid update(char *name,FILE *fp){...}כאשרnameמקבל מחרוזת מהפונקציה הראשית המכילה את שם הקובץהפונקציה פותחת את הקובץgeneral=fopen(name,"r")אני מעביר את מה שאני צריך להעביר ולסדר מ2 קבצים שברשותי לקובץ חדשtemp=fopen("Tempfile.txt","w")אך הבקשה בשאלה הייתה שבסופו של דבר השםTempfileיחזור להיות לשם שנמצא בnameאך כשאני עושה את הפקודה שלמדנוrename(general,temp);זה לא משנה דבר והקבציםנשארים בשמם...מה עלי לעשות בכדי שהשם ישתנה?תודה רבה!
פורסם 2010 במאי 1215 שנים מחבר תודה רבה על התשובה המהירה,אשמח לדוגמא איך אוכל לעשות זאת במקרה שלי...הרי גנרל מצביע על נייםוטמפ' מצביע על טמפייל.וכמובן שגם גנרל וגם טמפ' הם מסוג FILE
פורסם 2010 במאי 1215 שנים rename("Tempfile.txt", name);שים לב שאתה צריך לעשות את זה כששני הקבצים סגורים, כלומר אם עשית לקובץ fopen אז צריך לעשות לו fclose.
פורסם 2010 במאי 1215 שנים מחבר שני הקבצים המדוברים נפתחו בפונקציה עצמה, ולכן בשורה האחרונה של הפונקציה רשמתי: fclose(general); fclose(temp); rename("Tempfile.txt", name);וזה עדיין מייצר את הקובץ כמו שצריך, אך לא משנה את שמו.מדוע?תודה רבה![br]פורסם בתאריך: 12.05.2010 בשעה 23:01:07טוב, גיליתי את הבעיה,בגלל שקובץ הgeneral נמצא בתיקייה, אז אני לא יכול לשנות את הקובץ השני לאותו שם fclose(general); fclose(temp); remove(filename); rename("Tempfile.txt", "General.txt");תודה רבה על העזרה המבורכת!
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.