דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
dovidD

dovid

@dovid
ניהול
אודות
פוסטים
10.3k
נושאים
186
שיתופים
0
קבוצות
2
עוקבים
32
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • מה זה ליסט בדוט נט
    dovidD dovid

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

    בשביל לבדוק אם איבר קיים ולפי זה להכניס SortedList הוא ודאי לא האידאלי. למה החלטת שאתה צריך אותו? (בשביל לקבל בסוף מיון, תמיין בסוף. הSortedList עשוי להחזקת רשימה ממויינת שתישאר ככה גם כשמוסיפים לה טיפונת איברים פה ושם).
    Dictionary ייתן לך ביצועים משופרים (בדרך שבחרת בקוד שלך), וHashSet יחסוך לך את הקוד שכתבת לבדיקת המצאות איבר (קראת את ההודעה שלי הקודמת? שם כבתי גם שהוא עושה זאת יעיל).

    פורסם במקור בפורום CODE613 ב07/04/2014 14:43 (+03:00)

    ארכיון code613m

  • מה זה ליסט בדוט נט
    dovidD dovid

    @רחמים

    @דוד ל.ט.
    למה החלטת שבליסט א"א לעשות חיפוש בינארי?

    בליסט אפשר, אבל זה רק בגלל שהליסט מבוסס על מערך רגיל, בקוד הבא השורה השניה מתקבלת אבל השלישית לא:

    Dim list As New List(Of String)
            Dim num = list.BinarySearch("A")
            Array.BinarySearch(list, "A")
    

    😉 😛 :x :lol: <!-- s8-) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8-)" title="מגניב" /><!-- s8-) --> undefined :oops: 😛

    אפשר להבין מה אתה רוצה?

    פורסם במקור בפורום CODE613 ב07/04/2014 14:31 (+03:00)

    ארכיון code613m

  • מה זה ליסט בדוט נט
    dovidD dovid

    @רחמים

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

    למה רצוף זה לא טוב? אדרבא זה טוב. אם אתה דואג איפה יהיה שטח רצוף זה לא נראה לי עניינך :).

    @רחמים

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

    למה החלטת שבליסט א"א לעשות חיפוש בינארי?

    מה שחשוב לדעת זה בכמה פעמים אתה מכניס את הערכים (בבת אחת, כמה פעמים, הרבה הרבה פעמים), לפי מה אתה שולף אותם (סדרתי או גם אקראי - לפי key וכדו') ומה המחלקה/מבנה שמשמשים לקבוע את ייחדויותו של הערך ואת השוואתו, והאם נלווים לערך נתונים נוספים מלבדו.

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

    פורסם במקור בפורום CODE613 ב07/04/2014 13:22 (+03:00)

    ארכיון code613m

  • מה זה ליסט בדוט נט
    dovidD dovid

    דבר ראשון הכותרת לא מספיק מבטאת את שאלתך.
    שנית, מנין לך שרשימה מקושרת טובה מלבנות כל פעם מערך חדש?

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

    על כל פנים הלינק שנתת מביא את עיקרון הרשימה מקושרת, שמשמשת להרבה דברים בעקרונות תוכנה.
    יש את הדבר הזה בדוט נט בשם LinkedList תוכל לנסות לראות אם הוא מהיר יותר או להיפך.
    הנה כמה שבדקו זאת: http://stackoverflow.com/q/169973/1271037, וכאן הסברים לתופעות http://stackoverflow.com/q/5983059/1271037 ועוד http://www.codeproject.com/Articles/340797/Number-crunching-Why-you-should-never-ever-EVER-us.

    וכללית, השכל מחייב את ההנחה שכל דבר בדוט בנוי בצורה טובה מאוד, רק שצריך לדעת מה מיועד למה, ומה יש יותר טוב לכל סיטואציה.

    פורסם במקור בפורום CODE613 ב06/04/2014 21:33 (+03:00)

    ארכיון code613m

  • ניהול חלונות WPF
    dovidD dovid

    @שמואל

    בסוף עשיתי טאב קונטרולים לבד ובסופו של דבר בגלל שישנה ביינדינגים לelementName שהוא בעצם שוה גם בכרטיסיות אחרות ממיילא כל התוכנה מסונכרנת יחד ונהיים שיבושים מטורפים
    למישהוא יש פיתרון דחוף? (מדובר בתוכנה שכבר בנוייה כך שקשה לחשוב על דרך חזור)
    מקוה שהסברתי ברור
    תודה!

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

    הבעיה כנראה שונה, אולי סנכרון בין הCurrentItem של מקור נתונים משותף.

    פורסם במקור בפורום CODE613 ב26/05/2014 11:35 (+03:00)

    ארכיון code613m

  • ניהול חלונות WPF
    dovidD dovid

    @רחמים

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

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

    פורסם במקור בפורום CODE613 ב08/04/2014 11:22 (+03:00)

    ארכיון code613m

  • ניהול חלונות WPF
    dovidD dovid

    בעיקרון לסגור זה להסיר טאב קונטרול.
    חייבים לכתוב לזה קוד מסויים.

    פורסם במקור בפורום CODE613 ב07/04/2014 16:33 (+03:00)

    ארכיון code613m

  • ניהול חלונות WPF
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב07/04/2014 13:27 (+03:00)

    ארכיון code613m

  • ניהול חלונות WPF
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב06/04/2014 18:50 (+03:00)

    ארכיון code613m

  • עדכון שורה entity
    dovidD dovid

    לפני הכל אציין שאני לא מבין למה לא עבד לך.

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

    אופן הבדיקה שלו מתבסס על השדה המפתח שהוא AutoIncerment מה שאומר שהוא 0 באנטיטי שעוד לא היה מעולם במסד, ולאחמ"כ יש לו מספור אוטומטי.
    במידה ויש מספר, ממילא המסקנה היא שמדובר בשורה קיימת, ורק צריך להגיד לDbContext שייקח אותה בחשבון (כי הDbContext שמור רק מה שהוא עצמו הביא ושינה, ואילו השורה כאן שונתה לפני שהDbContex נוצר. לכן צריך לקשר אותה לקונטקסט. גם אחרי הקישור, יש לציין לקונקסט שהיא עברה שינוי, כי לפי זה הוא מחליט אם לעדכן.

    אגב, לפי מה שקראתי, ההשמה למאפיין State עושה גם קישור בעקיפין כך שהשורה של הקישור מיותרת.

    פורסם במקור בפורום CODE613 ב06/04/2014 18:46 (+03:00)

    ארכיון code613m

  • עדכון שורה entity
    dovidD dovid

    מוצאים את השורה המתאימה משנים ושומרים ככה:

    DbContext.SaveChanges().
    

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

    בשביל לקשר כותבים:

    DbContext.Attach(Entity)
    

    פורסם במקור בפורום CODE613 ב06/04/2014 17:28 (+03:00)

    ארכיון code613m

  • עדכון שורה entity
    dovidD dovid

    לא הבנתי. שמירה רגילה?

    פורסם במקור בפורום CODE613 ב06/04/2014 16:33 (+03:00)

    ארכיון code613m

  • האם אפשר לקבל אפקט של מצביע בדוטנט ?
    dovidD dovid

    @רחמים

    את התכנון אני משפר בכל עת בלא קשר לנושא הנידון

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

    פורסם במקור בפורום CODE613 ב06/04/2014 14:15 (+03:00)

    ארכיון code613m

  • האם אפשר לקבל אפקט של מצביע בדוטנט ?
    dovidD dovid

    מחלקה היא מצביע לכל דבר.

    ובקשר לביצועים, נסה לשנות את התכנון שלך. או שלא תשנה כלל, או שתשנה ידנית בכל מקום, או וכו'

    פורסם במקור בפורום CODE613 ב06/04/2014 13:41 (+03:00)

    ארכיון code613m

  • האם אפשר לקבל אפקט של מצביע בדוטנט ?
    dovidD dovid

    Structure עשוי להיות הפניה לפי ערך. השמה שלו היא למעשה העתקה, וממילא אין דרך להחזיק התייחסות אליו.
    ייתכן שיש דרך ע"י מצביעים, אני לא בטוח, אבל בכל מקרה הנחיות בתכנות הם ש[u:dxpie7is]לא עושים בכזה מקרה Structure.[/u:dxpie7is]

    הנה הכללים (של מקרוסופט) מתי לעשות Structure, אני פשוט תרגמתי מפה Choosing Between Class and Struct:
    [list:dxpie7is]

    1. המבנה מייצג לוגית ערך בודד.
    2. סך הזיכרון של השדות עד 16 בתים.
    3. [u:dxpie7is]בלתי ניתן לשינוי[/u:dxpie7is] זה בשביל "למנוע אי הבנות ובאגים".
    4. לא אמור לעבור Boxing (המרה להתייחסות) לעיתים קרובות.
      [/list:u:dxpie7is]

    בכל מקרה אחר יש להשתמש במחלקה.
    ראה גם: http://programmers.stackexchange.com/a/92369/112215

    פורסם במקור בפורום CODE613 ב06/04/2014 13:15 (+03:00)

    ארכיון code613m

  • בנושא אופטמיזציה בניצול משאבים
    dovidD dovid

    הClear לא עשוי בדוט נט לניקיון אלא פשוט להחזיר את כל ערכי המערך למצבם התחילתי.
    בעיקרון מבחינת המתכנת צריך לדאוג שאין רפרנסים חיים לאובייקטים מיותרים.
    לדוגמה אם יש אובייקט ענק ושדה שלו בשימוש איזה אירוע זה מונע הריסה של האובייקט, זה תחום אחירות המתכנת. כל השאר זה דאגה של ה"אוסף הזבל" של דוט נט.
    אבל במידה והמשתנה הוא בסקופ של פונקציה לדוגמה, אין צורך אפי' לאפס אותו, סוף התחום שלו הרוס אותו וממילא המידע שלו "יתום" וככזה הGC - "אספן הזבל" מוחק אותו [u:3n26xzb3]מתי שהוא[/u:3n26xzb3].
    בתכלס תוכל לראות שאם תעמיס אלפי מגה, מידי פעם תהיה "מחיקה" מסיבית, משא"כ במגה בודדים (מתחת למה שהוקצה לתוכנית מלתכחילה) מסיבות חיסכון בביצועים כנראה הGC לא עושה כלום.
    אפשר לאלץ את הGC לאסוף ככה: GC.Collect, אני חושב שזה לא מומלץ ולא יודע למה זה משמש, תוכל לראות שזה עשוה את העבודה באמת בצורה דרמטית מבחינת הזיכרון.

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

    פורסם במקור בפורום CODE613 ב06/04/2014 14:13 (+03:00)

    ארכיון code613m

  • אודות SQLITESPY
    dovidD dovid

    @רחמים

    אז זה כמו ILSRY והרפלקטור ודומיהם ?

    זה כמו שתשאל אם תת חובה ותת מקלע זה אותו דבר.

    פורסם במקור בפורום CODE613 ב03/04/2014 22:46 (+03:00)

    ארכיון code613m

  • אודות SQLITESPY
    dovidD dovid

    @רחמים

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

    מה זה האיקסים?

    הXXX מסמלים את מה שאני לא יודע.
    מה שאני יודע פירשתי.

    פורסם במקור בפורום CODE613 ב03/04/2014 21:58 (+03:00)

    ארכיון code613m

  • אודות SQLITESPY
    dovidD dovid

    מאיפה "נפלת" על זה?
    זה כלי עזר לXXX עם המסד SQLITE. (המילה Spy זה מרגל, כלומר חוקר צפונות).
    אם אתה עובד עם המסד הזה והרבה, אולי זה יכול לעניין אותך.

    פורסם במקור בפורום CODE613 ב03/04/2014 20:50 (+03:00)

    ארכיון code613m

  • DataGrid WPF
    dovidD dovid

    זה תלוי בהגדרת הVertivalAlignment, ובסוג האלמנט המכיל.
    לדוגמה אם המיכל הוא StackPanel אז הוא תמיד מכווץ את האלמנט למינימום (גובה מפורש או MinHeight).

    פורסם במקור בפורום CODE613 ב03/04/2014 15:02 (+03:00)

    ארכיון code613m
  • 1
  • 2
  • 486
  • 487
  • 488
  • 489
  • 490
  • 515
  • 516
  • 488 / 516
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום