פורסם 2011 בינואר 914 שנים שלום, רציתי לדעת, יש לי טופס MDI ושני טפסי בניו. טופס בן אחד קולט נתונים מקובץ חיצוני שבניתי. לצורך העניין, תאריך וטמפרטורה. טופס בן שני פולט רשימת התאריכים שקלטתי בהתחלה, וממוצע הטמפרטורה שקלטתי בהתחלה. יש לי שתי שאלות, 1) איך אני רושמת קוד הנמצא בטופס הקליטה, שבטופס הפליטה יציג לי את רשימת התאריכים כל 2 שורות שכן אני רושמת שני נתונים טמפ' ותאריך וכל פעם בקובץ הוא רושם תאריך בשורה אחת ובשורה השנייה את הטמפ' וכן הלאה.... 2) איך אני רושמת את הקוד שייחשב לי את הממוצע של הטמפ' ובמידה ומחקתי את אחד הנתונים הוא ייחשב לי את הממוצע החדש. אשמח לעזרה ותודה מראש.
פורסם 2011 בינואר 914 שנים ברוכה הבאה לפורום,אנא קראי את ההנחיות לניסוח הודעות בפורום וערכי את הכותרת בהתאם.
פורסם 2011 בינואר 914 שנים אני אנסה לעזור למרות שהניסוח שלך די מעורפל1 - את יכולה לעצב את הפלט בכל צורה שתרצי. אם לדוגמא אם זורקת את הנתונים לשדה text פשוט תעשי concatenation לשתי התוצאות. (תמירי אותן לטקסט קודם כמובן)2 - לא מובן לי מאיפה את מוחקת את הטמפ אבל את צריכה event מסויים שירוץ בשביל לעדכן את הנתונים. אם יש לך לדוגמא כפתור "מחק טמפ" אז בקוד שלו הוא צריך לקרוא לפונציה שמחשבת את הממוצע.
פורסם 2011 בינואר 914 שנים מחבר הייקודם כל,תודה.דבר שני,אני אסביר את הטופס בן הראשון:בטופס יש לי: קלנדר, 2 טקסט בוקס (אחד שיציג לי את התאריך שבחרתי בקלנדר ו-2 כדי שאוכל לרשום איזשהו טמפ') ולחצן שהוא שומר את הנתונים הנ"ל בקובץ חיצוני ולחצן שמעביר אותי לטופס בן השני..כשאני בוחרת תאריך ואז כותבת טמפ' ואז שומרת , אני יכולה לחזור על אותה פעולה כמה פעמים שאני מעוניינת.כשכל פעם אחרי פעולה כזו אני לוחצת על לחצן ששומר לי את הנתונים והם מועברים לקובץ חיצוני.בטופס בן השני יש לי: 2 ליסט בוקס (1- רשימה של התאריכים שנקראים מתוך הקובץ החיצוני. 2- רשימה של הטמפ' שנקלטים מהקובץ החיצוני) ולייבל.כשאני לוחצת על הלחצן שמעביר אותי לטופס בן השני,אני אמורה לראות ליסט של כל התאריכים שבחרתי, וליסט של הטמפ' שבחרתי, ובלייבל אני צריכה לראות את הממוצע של הטמפ'.בקובץ החיצוני, הוא שומר לי את הנתונים בסדר הבא:טמפ'תאריךטמפ'תאריךוכו' ...
פורסם 2011 בינואר 914 שנים אוקי, אם תפרסמי את הקוד שלך שמושך את הנתונים מהקובץ החיצוני אני אנסה לעזור. תעתיקי ותדביקי את הקוד בתגית הזו בעיקרון את מושכת שורה אחת בכל פעם, אז את צריכה לשמור אותן במקומות שונים אפשר לדוגמא באותה פונצקיה לשמור פעם את השורה הראשונה בליסט הראשון ואז את השורה השניה בליסט השני, ואז לחזור על הפונציה עד סוף הקובץ. הלייבל שמראה ממוצע הוא פשוט לולאה שרצה מתחילת הליסט עד סופה, תוסיף את המספר למשתנה אוגר מסויים. בסוף הלולאה תחלקי את האוגר הזה במספר האיברים שיש בליסט.
פורסם 2011 בינואר 914 שנים מחבר Private Sub CmdSaveDATA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSaveDATA.Click Dim path1 As String = "C:\temp\tempdata.txt" 'exists Dim fwrite As New FileStream(path1, FileMode.Append) Dim file2 As New StreamWriter(fwrite) file2.WriteLine(txtTemp.Text) file2.WriteLine(TxtDAY.Text) file2.Flush() file2.Close() fwrite.Close() Dim fread As New FileStream(path1, FileMode.Open) Dim file3 As New StreamReader(fread) FrmOUTPUT.LstTemp.Items.Add(file3.ReadLine) FrmOUTPUT.LstDates.Items.Add(file3.ReadLine) file3.ReadLine() file3.Close() fread.Close() If IsNumeric(txtTemp.Text) = False Then MsgBox("Input Numbers please", MsgBoxStyle.Exclamation) 'בדיקה האם הנתונים שהוקלדו הם מספרים. אם הנתונים אינם מספרים נפתחת הודעה שנא לשים מספרים. End If
פורסם 2011 בינואר 914 שנים קודם כל, מה עושה הפונקציה Flush()? דבר שני, את מתייחסת לשלושה קבצים שונים tempdata.txt txtTemp.Text TxtDAY.Text מעבר לעובדה שהסיומת של השניים האחרונים צריכה להיות txt - למה יש לך שלושה קבצים? אפשר לשמור את כל הנתונים בקובץ אחד כי הם הרי באים בזוגות של תאריך+טמפ. אלא אם פספסתי משהו, את מושכת את הנתונים מקובץ tempdata.txt אבל שומרת אותם בשניים האחרים.. את הבדיקה האם הוזן מספר עושים לפני ששומרים את הנתונים בקובץ. תהפכי את הקוד למשהו כזה Private Sub CmdSaveDATA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSaveDATA.Click If IsNumeric(textboxDailyTemp) Thenשמירה של המידע בקובץelseהודעה על שגיאה End If
פורסם 2011 בינואר 1014 שנים מחבר אוקיי את זה הצלחתי וגם את ההורדת שורה מקובץ חיצוני. אני עכשיו לא יודעת איך מחשבים ממוצע ? ובמידה ומחקתי מס' מסויים הוא אמור לחשב לי ממוצע חדש. תודה רבה על העזרה !!!!!!!
פורסם 2011 בינואר 1114 שנים זה תלוי איך את מוחקת מספר מהרשימה. אני מניח שיש לך כפתור שמוחק את הטמפ שהיא selectedפשוט תוסיפו לקוד שלו קריאה לפונציה שמחשבת את הממוצע.הפונצקיה שתחשב את הממוצע תכיל לולאה שרצה מתחילת הליסט עד סופה, ותוסיף את המספר (טמפ) למשתנה מסויים, נגיד XYבסוף (לאחר) הלולאה תחלקי את XY במספר האיברים שיש בליסט וקיבלת את הממוצע.כמובן שלא צריך ליצור שתי פונציות זהות. כאשר הטופס השני נטען (עולה) תקראי לפונציה הזו, וכאשר את מוחקת מספר תקראי שוב לאותה פונציה.
פורסם 2011 בינואר 1114 שנים מחבר יש אפשרות שתרשום לי דוגמא לקוד? או שתפנה אותי לאתר כלשהו שמראה את הקוד? ... אני אשמח מאוד. ;D
פורסם 2011 בינואר 1114 שנים מחבר את האמת ....? ... הכל.אני לא יודעת איך מתחילים, באיזה לולאה משתמשים ואיך בכלל הקוד אמור להיראות ז"א אילו אירועים אני כותבת וכו'.... אולי אתה מכיר אתר שמסביר ?
פורסם 2011 בינואר 1114 שנים אני הייתי עושה משהו כזה:class ListObserver: sum = 0 count = 0 function NotifyAdd(date, text, temp): list1.Items.Add(data.ToString() + " : " + text + " (" + temp.ToString + ")") sum += temp count ++ UpdateTemp() function NotifyRemove(temp): sum -= temp count -- private function UpdateTemp() average_label.Text = (sum / count).ToString()class FileObserver: file_object = open("file_path", "wt") function NotifyAdd(date, text, temp): file_object.write(data.ToString() + " : " + text + " (" + temp.ToString + ")") function NotifyRemove(temp): ' Do nothingclass MainWindow: observers = List() function constructor(): observers.add(ListObserver()) observers.add(FileObserver()) function OnAddPressEvent(): foreach observer in observers: observer.NotifyAdd(calendar.DateTime, textbox1.Text, int(tempbox.Text)) function OnRemovePressEvent(): foreach observer in observers: observer.NotifyRemove(int(tempbox.Text))יש 2 אובייקטים שיודעים לקבל "עדכון מצב" על הפעולות שהמשתמש מבצע, ויש אובייקט אחד ששולח את הפעולות שהמשתמש עושה.את מכניסה את כל הנתונים בטופס הראשון, לוחצת על הוספה. הEVENT של ההוספה עובר על כל האובייקטים שיודעים לקבל את העדכונים הללו ומוסיף אותם (כל אחד לפי הלוגיקה שלו - אם זה קובץ או רשימה).כנ"ל עבור ההסרה - את מכניסה בטופס הראשון את הטמפרטורה שאת רוצה להסיר, והEVENT כבר שולח את העדכון לכל האובייקטים (ושוב, כל אחד מהם עושה את הלוגיקה הספציפית שלו, אם הוא רוצה לעשות בכלל משהו).
פורסם 2011 בינואר 1214 שנים מחבר איפה אני שמה את כל class ListObserver class FileObserver class MainWindow בטופס יש לי ליסט בוקס שנכנסים מקובץ חיצוני הטמפרטורות לפי הסדר ויש לי לייבל ליד....... בלייבל אני רוצה להראות את הממוצע של הטמפ' שמופעיות בליסט בוקס. את כל הקוד שרשמת אני רושמת על הלחצן שיבצע הכל ? ... :s05: ותודה
פורסם 2011 בינואר 1214 שנים כל class כזה אמור להיות בסופו של דבר FORM.תתחילי מזה שתיצרי רק את הטפסים שלך - תמקמי את הכפתורים, הלייבלים והרשימות על המסך.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.