כותב |
|
אורח אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 29 March 2008 בשעה 12:02 | | IP רשוּם
|
|
|
|
שלום , אני צריך לקרוא מקובץ שורה שורה ובכל שורה יהיה סימן כלשהו ברגע שזה יגיע לסימן זה יפסיק , זה יקח את כל מה שהוא קרא עד הסימן לתוך משתנה(או דרך אחרת) ואז ימשיך לקרוא אחרי הסימן ומה שיש אחרי הסימן גם יכניס למשתנה . ככה שורה שורה . עכשיו ניסיתי משהו וזה לא הולך לי הנה הקוד
int a = 0; while(!input_file.eof()) { string b; char i[20]; input_file.getline(i, 20); getline(input_file,b);
if(b[a] == 'הסימן') { // do bla bla.. }
// the code ....
a++ }
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 29 March 2008 בשעה 15:55 | | IP רשוּם
|
|
|
|
היי, אשמח אם תפתח משתמש בפורום ותדביק את הקודם בצורה קריאה יותר - קשה להבין מה כתבת.
ניר
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 29 March 2008 בשעה 16:12 | | IP רשוּם
|
|
|
|
נרשמתי , אני לא רואה פה משהו שאפשר להשים את זה כקוד שיהיה ברור .. אז אם תעתיק את זה לnotepad זה יהיה ברור.
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 29 March 2008 בשעה 16:24 | | IP רשוּם
|
|
|
|
בעזרת התג [code]
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 29 March 2008 בשעה 16:24 | | IP רשוּם
|
|
|
|
קוד:
int a = 0; while(!input_file.eof()) { string b; char i[20]; input_file.getline(i, 20); getline(input_file,b);
if(b[a] == 'הסימן') { // do bla bla.. }
// the code ....
a++ } |
|
|
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 29 March 2008 בשעה 17:01 | | IP רשוּם
|
|
|
|
תדביק לנו את הקוד מסביב גם בבקשה - הפונקציה והקריאה - אני רוצה להריץ ולבדוק ואין לי את הזמן להקליד קצת :)
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 29 March 2008 בשעה 17:58 | | IP רשוּם
|
|
|
|
זה כל הקוד הרלוונטי
קוד:
ifstream input_file("file.txt"); int a = 0; while(!input_file.eof()) { string b; char i[20]; input_file.getline(i, 20); getline(input_file,b); if(b[a] == 'סימן') { // אם הוא מוצא את הסימן בשורה הוא יפסיק ויעביר את מה שהוא מצא למשתנה (כל מה שהוא מצא עד הסימן) // ככה בכל שורה } a++; } |
|
|
משום מה זה עדיין לא יוצא טוב כל כך (הקטע עם הסימן) אני מקווה שהבנתם מה התכוונתי
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 29 March 2008 בשעה 21:45 | | IP רשוּם
|
|
|
|
בכל שורה יש את הסימן המפריד? מה צריך לעשות אם אין אותו? האם צריך להדפיס את שני החלקים?
ניר
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 29 March 2008 בשעה 21:48 | | IP רשוּם
|
|
|
|
ניר כתב:
בכל שורה יש את הסימן המפריד? מה צריך לעשות אם אין אותו? האם צריך להדפיס את שני החלקים?
ניר
|
|
|
אממ בוא נחשוב קודם איך אני בודק אם יש אותו :) אחר כך נראה מה יקרה אם אין אותו . ותודה על העזרה :).
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 30 March 2008 בשעה 19:15 | | IP רשוּם
|
|
|
|
מישהו ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 30 March 2008 בשעה 21:24 | | IP רשוּם
|
|
|
|
ראה פונקציה strstr (ולוללאות פור למקרה שאתה לא מכיר :))
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 30 March 2008 בשעה 23:09 | | IP רשוּם
|
|
|
|
בדיוק, כרגע אתה בודק רק את התו הראשון, לא את כל המחרוזת..
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 30 March 2008 בשעה 23:14 | | IP רשוּם
|
|
|
|
הצלחתי תודה , יש לי עוד שאלה איך אני מכניס את מה שנמצא עד התו למשתנה ? ומה שאחריו איך ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 31 March 2008 בשעה 22:05 | | IP רשוּם
|
|
|
|
ראה memcpy (או strncpy)
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 31 March 2008 בשעה 22:46 | | IP רשוּם
|
|
|
|
ניסיתי וזה נגיד מציג
עכשיו אני לא רוצה שזה יציג את ה":" איך אני מוריד אותו ? ועוד משהו זה מציג מה שאחרי ה":" איך אני מציג מה שלפני עד הסימן?
מי שלא הבין ":" זה הסימן .
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 01 April 2008 בשעה 00:13 | | IP רשוּם
|
|
|
|
הגדל ב-1 את מיקום התא ההתחלתי ממנו אתה מעתיק, הקטן ב-1 את גודל המחרוזת אותה אתה מעתיק, ונפטרת מהנקודותיים.
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 01 April 2008 בשעה 20:30 | | IP רשוּם
|
|
|
|
איך אני מגדיל את המיקום ההתחלתי ? ועוד שאלה איך אני מעתיק את מה שלפני הסימן ?
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 01 April 2008 בשעה 20:38 | | IP רשוּם
|
|
|
|
הצלחתי תודה (פשוט הוספתי +1 למשתנה של הstrstr עכשיו אני רק צריך לדעת איך אני קורא מהתחלה עד הסימן
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 01 April 2008 בשעה 22:47 | | IP רשוּם
|
|
|
|
אני רואה שאתה לא בדיוק קולט patterns של פעולה...
קודם העתקת מהסימן ולא היה כל כך קשה, מה שונה עכשיו ?
להעתיק מהתחלה זה אומר מ-0, וכמה להעתיק - עד הסימן שאתה יודע כמה תוים אחרי הוא מופיע.
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 02 April 2008 בשעה 16:24 | | IP רשוּם
|
|
|
|
זהו שאני לא יודע אחרי כמה תווים הוא יופיע :| יש לי את הפונקציה שבודקת אם קיים הסימן יש את המשתנה שהוא שורה שלמה כולל הסימן כולל הכול יש משתנה שהוא מה שבא אחרי הסימן , אבל אני לא יודע איך למצוא מה שיש עד הסימן :|
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 02 April 2008 בשעה 16:32 | | IP רשוּם
|
|
|
|
תדביק את הקוד הנוכחי שנראה מה יש כרגע. מה לגבי לולאת FOR פשוטה שעוברת תו תו עד למציאת הסימן?
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 02 April 2008 בשעה 18:49 | | IP רשוּם
|
|
|
|
הנה הקוד
קוד:
while(!file.eof()) { char buf[20]; char buf2[20]; char i[50]; file.getline(i, 50); char *p = strstr(i,":");
if(p) { strcpy(buf,p+1); // זה מציג לי את מה שנמצא אחרי הסימן // מה שאני צריך זה להציג לפני הסימן // זה יציג את כל השורה וזה לא מה שאני צריך i אם אני יציג את } |
|
|
ולמה נגיד שאני עושה i-p זה לא עובד?
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 03 April 2008 בשעה 18:14 | | IP רשוּם
|
|
|
|
מישהו ?
|
חזרה לתחילת העמוד |
|
|
yohai מנהל פורומים
הצטרף / הצטרפה: 11 November 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 354
|
נשלח בתאריך: 03 April 2008 בשעה 19:32 | | IP רשוּם
|
|
|
|
בגלל זה יוצרים מקום דינאמי שבו תאחסן את התווים את שתגיע לסימן שאתה צריך...
וכך, בכל פעם שתצטרך להוסיף תו תמקם מחדש את כל התווים שכבר שמת פלוס התו
החדש למקום אחר בזכרון.............
מקסימום אם מדובר בבלוקים ממש גדולים ואתה לא בטוח אם תמצא מקום בזכרון לשים את כל
התווים בבלוק אחד, תמיד ניתן להשתמש ברשימה!.
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 03 April 2008 בשעה 20:13 | | IP רשוּם
|
|
|
|
לא זה לא בלוקים גדולים . ועדיין לא הבנתי איך אני קורא עד הסימן :S
|
חזרה לתחילת העמוד |
|
|
שדג אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 03 April 2008 בשעה 22:04 | | IP רשוּם
|
|
|
|
תוותר, גם אם תלמת תכנות מתכנת לא תהיה
|
חזרה לתחילת העמוד |
|
|
user משתמש מתחיל
הצטרף / הצטרפה: 29 March 2008
משתמש: מנותק/ת הודעות: 14
|
נשלח בתאריך: 03 April 2008 בשעה 22:14 | | IP רשוּם
|
|
|
|
אתה שומע את עצמך ? גם אם תלמד תיכנות מתכנת לא תהיה ? אני מתחיל בC++ , אז אני לא יודע איך בגלל זה אני שואל . אתה גם לא ידעת שהתחלת (אם אתה יודע תכנות) . אז שב בשקט ואל תגיב.
|
חזרה לתחילת העמוד |
|
|