כותב |
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 24 March 2005 בשעה 19:46 | | IP רשוּם
|
|
|
|
איך בודקים אם קובץ מסויים כבר קיים?
למשל אני מקבל כקלט c:\program files\bla.txt
ואני רוצה לבדוק אם הקובץ קיים כדי לא לדרוס אותו.
וגם איך אני בודק אם הדרך הזו קיימת (התיקיות)?
צריך עזרה כדי להתקדם בתוכנה שאני כותב, וגם בספר שאני קורא.....
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 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 רשוּם
|
|
|
|
ב-MSVC איך אני יכול לעבור על כל הקבצים שבאותה תיקיה ולבדוק אם יש קבצים עם סיומת TXT נגיד?
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 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 רשוּם
|
|
|
|
אני משתמש בקומפיילר של בורלנד:
TCLite (Turbo C Lite)
אבל יש לי גם גרסת בטא של הקומפיילר של מייקרוסופט ויז'ואל C++ 2005
אני יכול להוריד אולי devcpp למערכת ההפעלה שלי.
אני אישית לא מבחין בין הקומפיילרים.
חשבתי על להשתמש בקובץ הכותר dos.h
אני אחפש מידע עליו ואני אראה אם זה פותר לי את הבעיה.
כי אני רוצה לראות אם קובץ כלשהו כבר קיים כדי שאני לא אדרוס אותו, ולא כדי להתעסק עם אותו קובץ.
ואני לא רוצה להתעסק עם פונקציות API
|
חזרה לתחילת העמוד |
|
|
Alias משתמש חבר
הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת הודעות: 344
|
נשלח בתאריך: 25 March 2005 בשעה 03:10 | | IP רשוּם
|
|
|
|
כשאני רציתי לכתוב תוכנית קטנה שעושה משהו דומה הרבה הציעו לי להשתמש בסיפרייה dir.h, אני לא השתמשתי ולא עבדתי איתה אבל אני בטוח שאם תרצה אתה תמצא איך לעבוד איתה ולהשיג בעזרתה את המטרה.
בהצלחה .
עריכה: עכשיו נכנסתי לקישור הראשון שניר הביא לך (בהודעה שלו למעלה) ואני רואה שגם שם עובדים עם ההאדר dir.h נסה ללמוד משם לעבוד עם זה.
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 25 March 2005 בשעה 05:53 | | IP רשוּם
|
|
|
|
תודה, אני בודק את זה.
תגידו, אתם מכירים אתר שמביא מידע על קבצי H ?
למשל, רשימה של פונקציות שקשורות אליו, למה הקובץ אחראי, איך להשתמש בפונקציות?
להסתכל בקבצים עצמם לא עוזר לי ממש....
אני צריך את זה לפרוייקט נוכחי ולהרבה פרוייקטים בעתיד, וגם קבצי עזרה של קומפיילרים לא ממש עוזרים...
*אני צריך את זה גם לידע אישי.
גם חיפוש בגוגל לא עוזר.
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 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 רשוּם
|
|
|
|
לפעמים זה עוזר, אבל למה שאני רוצה לעשות, זה לא עוזר.
אתה לא מכיר אתר טוב?
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 25 March 2005 בשעה 06:34 | | IP רשוּם
|
|
|
|
חיפשת בגוגל? לא אמור להיות קשה למצוא
|
חזרה לתחילת העמוד |
|
|
Alias משתמש חבר
הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת הודעות: 344
|
נשלח בתאריך: 25 March 2005 בשעה 16:16 | | IP רשוּם
|
|
|
|
אוקיי לקחתי את התוכנית שהכנתי אז ושיניתי אותה טיפה שתתאים למטרה שלך...
בעקרון אני אפילו לא מבין אותה ממש לפני חודשיים אולי הייתי מבין אותה פחות או יותר עכשיו רק בכלליות.
אני אומר את זה כי ראיתי שאמרת שאתה רוצה לדעת על הנושא וזה לא רק בשביל הפרויקט. אז ככה שאני לא יוכל לעזור בזה אלא רק בקשר לפרויקט. אם תרצה ללמוד עוד חפש ב- 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 וזה פעל בקומפיילר אחר לא יודע...
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 26 March 2005 בשעה 22:59 | | IP רשוּם
|
|
|
|
אחרי שאני פותח קובץ ב fopen עם מצביע fp
ואני רוצה לקרוא את הקובץ, ורושם:
fscanf(fp, "%d\n", &numbers[iCounter]);
למה החלק של ה "%d" משמש, ולמה החלק האחרון משמש?
|
חזרה לתחילת העמוד |
|
|
RPG2kiLL משתמש חבר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 376
|
נשלח בתאריך: 26 March 2005 בשעה 23:34 | | IP רשוּם
|
|
|
|
fscanf זהו פשוט scanf שקורא מקבצים, ולכן יש לו את אותו התחביר כמו scanf הרגיל
וscanf יש את אותו הסינטקס כמו ל printf!
תשובה ממוקדת יותר:
%d אומר, תתיחס למשתנה שיבוא בהמשך כערך של מספר שלם
החלק הראשון של scanf הוא מחרוזת הפורמט, ולאחריה יופיעו הפרמטרים.
כלומר החלק האחרון משמש ככתובת בה המחשב צריך לרשום את הערך המספרי
|
חזרה לתחילת העמוד |
|
|
Nameless אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 27 March 2005 בשעה 00:47 | | IP רשוּם
|
|
|
|
למשל אם אני רוצה לאחסן את הדברים
שבקובץ, שנגיד הם טקסט, במשתנה מחרוזת, אני תריך לכתוב %s ואז לכתוב לאיזה
משתנה לקלוט את המידע שבקובץ?
|
חזרה לתחילת העמוד |
|
|
Alias משתמש חבר
הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת הודעות: 344
|
נשלח בתאריך: 27 March 2005 בשעה 00:49 | | IP רשוּם
|
|
|
|
יאפ
|
חזרה לתחילת העמוד |
|
|