נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: שאלה לגבי קבצים בשפת C

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Nameless
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 24 March 2005 בשעה 19:46 | IP רשוּם
ציטוט Nameless

איך בודקים אם קובץ מסויים כבר קיים?
למשל אני מקבל כקלט c:\program files\bla.txt
ואני רוצה לבדוק אם הקובץ קיים כדי לא לדרוס אותו.


וגם איך אני בודק אם הדרך הזו קיימת (התיקיות)?


צריך עזרה כדי להתקדם בתוכנה שאני כותב, וגם בספר שאני קורא.....
חזרה לתחילת העמוד הצג את כרטיס החבר של Nameless חפש הודעות אחרות של Nameless בקר בדף הבית של Nameless
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 24 March 2005 בשעה 20:10 | IP רשוּם
ציטוט ניר

גישה לכוננים היא לא חלק מהסטנדרט של שפת C, מכיוון שגישה ל-HD זה תלוי מערכת קבצים, כלומר תלוי מערכת הפעלה גם, ולכן הפקודות שונות מקומפיילר לקומפיילר.

באיזה סביבה אתה עובד?

חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 24 March 2005 בשעה 20:23 | IP רשוּם
ציטוט SBD

 ב-MSVC איך אני יכול לעבור על כל הקבצים שבאותה תיקיה ולבדוק אם יש קבצים עם סיומת TXT נגיד?

__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 24 March 2005 בשעה 20:36 | IP רשוּם
ציטוט ניר

http://www.c-for-dummies.com/lessons/chapter.15/01/

http://www.codeguru.com/forum/archive/index.php/t-116735.htm l

http://world.std.com/~swmcd/steven/ms/bugs.html

 

כמה מאמרים על הנושא. תגידו אם פותר לכם את הבעיה

 

חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
Nameless
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 24 March 2005 בשעה 23:11 | IP רשוּם
ציטוט Nameless

אני משתמש בקומפיילר של בורלנד:
TCLite (Turbo C Lite)
אבל יש לי גם גרסת בטא של הקומפיילר של מייקרוסופט ויז'ואל C++ 2005
אני יכול להוריד אולי devcpp למערכת ההפעלה שלי.
אני אישית לא מבחין בין הקומפיילרים.
חשבתי על להשתמש בקובץ הכותר dos.h
אני אחפש מידע עליו ואני אראה אם זה פותר לי את הבעיה.
כי אני רוצה לראות אם קובץ כלשהו כבר קיים כדי שאני לא אדרוס אותו, ולא כדי להתעסק עם אותו קובץ.
ואני לא רוצה להתעסק עם פונקציות API


חזרה לתחילת העמוד הצג את כרטיס החבר של Nameless חפש הודעות אחרות של Nameless בקר בדף הבית של Nameless
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 25 March 2005 בשעה 03:10 | IP רשוּם
ציטוט Alias

כשאני רציתי לכתוב תוכנית קטנה שעושה משהו דומה הרבה הציעו לי להשתמש בסיפרייה dir.h, אני לא השתמשתי ולא עבדתי איתה אבל אני בטוח שאם תרצה אתה תמצא איך לעבוד איתה ולהשיג בעזרתה את המטרה.
בהצלחה .

עריכה: עכשיו נכנסתי לקישור הראשון שניר הביא לך (בהודעה שלו למעלה) ואני רואה שגם שם עובדים עם ההאדר dir.h נסה ללמוד משם לעבוד עם זה.
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 
Nameless
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 March 2005 בשעה 05:53 | IP רשוּם
ציטוט Nameless

תודה, אני בודק את זה.
תגידו, אתם מכירים אתר שמביא מידע על קבצי H ?
למשל, רשימה של פונקציות שקשורות אליו, למה הקובץ אחראי, איך להשתמש בפונקציות?
להסתכל בקבצים עצמם לא עוזר לי ממש....
אני צריך את זה לפרוייקט נוכחי ולהרבה פרוייקטים בעתיד, וגם קבצי עזרה של קומפיילרים לא ממש עוזרים...
*אני צריך את זה גם לידע אישי.

גם חיפוש בגוגל לא עוזר.


חזרה לתחילת העמוד הצג את כרטיס החבר של Nameless חפש הודעות אחרות של Nameless בקר בדף הבית של Nameless
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 25 March 2005 בשעה 06:01 | IP רשוּם
ציטוט ניר

ב-borland C לחיצה של ctrl+f1 על קובץ .h מביאה פירוט של כל הפונקציות עם אפשרות לראות עזרה עבור כל אחת מהן. משם למדתי המון.
חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
Nameless
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 March 2005 בשעה 06:32 | IP רשוּם
ציטוט Nameless

לפעמים זה עוזר, אבל למה שאני רוצה לעשות, זה לא עוזר.
אתה לא מכיר אתר טוב?
חזרה לתחילת העמוד הצג את כרטיס החבר של Nameless חפש הודעות אחרות של Nameless בקר בדף הבית של Nameless
 
ניר
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 3296
נשלח בתאריך: 25 March 2005 בשעה 06:34 | IP רשוּם
ציטוט ניר

חיפשת בגוגל? לא אמור להיות קשה למצוא
חזרה לתחילת העמוד הצג את כרטיס החבר של ניר חפש הודעות אחרות של ניר בקר בדף הבית של ניר
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 25 March 2005 בשעה 16:16 | IP רשוּם
ציטוט Alias

אוקיי לקחתי את התוכנית שהכנתי אז ושיניתי אותה טיפה שתתאים למטרה שלך...
בעקרון אני אפילו לא מבין אותה ממש לפני חודשיים אולי הייתי מבין אותה פחות או יותר עכשיו רק בכלליות.
אני אומר את זה כי ראיתי שאמרת שאתה רוצה לדעת על הנושא וזה לא רק בשביל הפרויקט. אז ככה שאני לא יוכל לעזור בזה אלא רק בקשר לפרויקט. אם תרצה ללמוד עוד חפש ב- MSDN שם אני מצאתי את זה ושיניתי.

זה הקוד:
קוד:

#define _WIN32_WINNT 0x0501

#include <windows.h>
#include <string.h>
#include <stdio.h>

int main()
{
   WIN32_FIND_DATA FindFileData;
   HANDLE hFind = INVALID_HANDLE_VALUE;
   char DirSpec[MAX_PATH];   // directory specification
   char DirS[MAX_PATH];
   char file[MAX_PATH];     // file you want to find
   int   check; //0-   file not found, 1- file found
   DWORD dwError;
   
   printf ("Press the target directory:");
   scanf("%s",DirS);
   printf ("Press the file you want to find:");
   scanf("%s",file);

   printf ("Target directory is %s.\n", DirS);
   strncpy (DirSpec, DirS, strlen(DirS)+1);
   strncat (DirSpec, "\\*", 3);

   hFind = FindFirstFile(DirSpec, &FindFileData);

   if (hFind == INVALID_HANDLE_VALUE)
   {
      printf ("Invalid file handle. Error is %u\n", GetLastError());
      return (-1);
   }
   else
   {
       check=0;
        while(FindNextFile (hFind, &FindFileData) != 0)
       {
               if ((strcmp(FindFileData.cFileN ame,".")!=0) &&(strcmp(FindFileDa ta.cFileName,"..")!=0))
                   if    (strcmp(FindFileData.cFileName,file)==0)
                        check=1;
       }

      if (check)
                    printf ("The file %s was found\n",file);
      else
                    printf ("The file %s wasn't found\n",file);
       
      dwError = GetLastError();
      FindClose(hFind);
      if (dwError != ERROR_NO_MORE_FILES)
      {
                   printf ("FindNextFile error. Error is %u\n", dwError);
                   return (-1);
      }
   }
   return (0);
}

התוכנית לא נבנת מראש למטרה הזאת לכן יכול להיות שיש דברים שם שאתה לא צריך ויכול למחוק... את זה אני כבר ישאיר לך.

אה כן שכחתי להגיד שקימפלתי את זה ב- MSVC וזה פעל בקומפיילר אחר לא יודע...
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 
Nameless
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 26 March 2005 בשעה 22:59 | IP רשוּם
ציטוט Nameless

אחרי שאני פותח קובץ ב fopen עם מצביע fp
ואני רוצה לקרוא את הקובץ, ורושם:
fscanf(fp, "%d\n", &numbers[iCounter]);
למה החלק של ה "%d" משמש, ולמה החלק האחרון משמש?
חזרה לתחילת העמוד הצג את כרטיס החבר של Nameless חפש הודעות אחרות של Nameless בקר בדף הבית של Nameless
 
RPG2kiLL
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 12 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 376
נשלח בתאריך: 26 March 2005 בשעה 23:34 | IP רשוּם
ציטוט RPG2kiLL

fscanf זהו פשוט scanf שקורא מקבצים, ולכן יש לו את אותו התחביר כמו scanf הרגיל
וscanf יש את אותו הסינטקס כמו ל printf!

תשובה ממוקדת יותר:
%d אומר, תתיחס למשתנה שיבוא בהמשך כערך של מספר שלם
החלק הראשון של scanf הוא מחרוזת הפורמט, ולאחריה יופיעו הפרמטרים.
כלומר החלק האחרון משמש ככתובת בה המחשב צריך לרשום את הערך המספרי
חזרה לתחילת העמוד הצג את כרטיס החבר של RPG2kiLL חפש הודעות אחרות של RPG2kiLL בקר בדף הבית של RPG2kiLL
 
Nameless
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 27 March 2005 בשעה 00:47 | IP רשוּם
ציטוט Nameless

למשל אם אני רוצה לאחסן את הדברים שבקובץ, שנגיד הם טקסט, במשתנה מחרוזת, אני תריך לכתוב %s ואז לכתוב לאיזה משתנה לקלוט את המידע שבקובץ?
חזרה לתחילת העמוד הצג את כרטיס החבר של Nameless חפש הודעות אחרות של Nameless בקר בדף הבית של Nameless
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 27 March 2005 בשעה 00:49 | IP רשוּם
ציטוט Alias

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

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

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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