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

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

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

dovid

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

פוסטים

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

  • WPF - ListView
    dovidD dovid

    למה לא להביא xaml?
    חשוב לדעת איפה אתה אוחז.
    א. יש הרבה הרבה אפשרויות להציג מידע בפקדי xaml.
    ב. יש הרבה אפשרויות איך לנהל את הקוד מאחורה.
    ג. לליסטויו יש אפשרויות תצוגה טבלאית ואחרות.

    עשיתי דוגמה בסיסית עם פירוט רב כדי שתראה את היקף ההיבטים.
    קודם הXAML:

    <ListView  ItemsSource="{Binding Source={StaticResource CollForList}}" MouseDoubleClick="listFiles_MouseDoubleClick" >
        <ListView.View>
            <GridView>
                <GridViewColumn >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Image Source="{Binding icon}" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn Header="שם" DisplayMemberBinding="{Binding Name}" />
                <GridViewColumn Header="תאריך שינוי" DisplayMemberBinding="{Binding DateChange}" />
            </GridView>
        </ListView.View>
    </ListView>
    

    הזאמל הזה עושה שימוש בריסורס, אביא אף אותו

    <Window.Resources>
        <CollectionViewSource x:Key="CollForList" />
    </Window.Resources>
    

    הקוד VB במקרה זה:

    Private Coll As CollectionViewSource
    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        Coll = Me.Resources("CollForList")
        ListBuilder(New IO.DirectoryInfo("c:\"))
    End Sub
    
    Private Sub ListBuilder(dirBase As IO.DirectoryInfo)
        Dim files = From file In dirBase.EnumerateFiles()
                    Select New FileOrFolder(file)
    
        Dim directories = From dir In dirBase.EnumerateDirectories
                          Select New FileOrFolder(dir)
    
        Coll.Source = files.Concat(directories)
    End Sub
    
    Private Sub listFiles_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs)
        Dim f = TryCast(CType(e.OriginalSource, FrameworkElement).DataContext, FileOrFolder)
        If f IsNot Nothing Then
            If f.IsDir Then
                ListBuilder(New IO.DirectoryInfo(f.FullName))
            End If
        End If
    End Sub
    

    הקוד משתמש במחלקה זאת:

    Class FileOrFolder
        Public FullName As String
        Public Property IsDir As Boolean
        Public Property Name As String
        Public Property DateChange As Date
        Public Property Image As ImageSource
    
        Public Sub New(file As IO.FileInfo)
            FullName = file.FullName
            Name = file.Name
            '....
        End Sub
        Public Sub New(dir As IO.DirectoryInfo)
            IsDir = True
            FullName = dir.FullName
            Name = dir.Name
            '....
        End Sub
    End Class
    

    תשלים את הקוד החסר (איפה שיש שלוש נקודות) לפי טעמך.
    יש כאן הרבה "הנחות עבודה". כל דבר שעשיתי אפשר אחרת.
    אבל זה מבט מהיר לאיך שWPF מתמודד עם נתונים.

    פורסם במקור בפורום CODE613 ב17/10/2013 13:05 (+03:00)


  • WPF - ListView
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב17/10/2013 10:57 (+03:00)


  • comboBox - WPF
    dovidD dovid

    אם מוגדר לItemsControl (במקרה זה ליסט), הItemsSource, הדרך הטבעית והפשוטה ביותר זה להוסיף את האיבר למקור הנתונים.
    במקרה זה כתבת שמקור הנתונים זה "עמודה בטבלה".
    זה ניסוח שגוי מאוד. מקור הנתונים חייב להיות IEnumerable<T>, ועמודה בטבלה היא אובייקט שממש לא מממש את הציפיה הזו.
    נניח שכנראה הT הוא DataRow. אז צריך להוסיף DataRow, השאלה היא מה ה"מיכל" של הDataRow הללו. אם זה טבלה, אז אפשר להוסיף לה שורה, אבל אם זה שאילתת לינק או מערך, א"א להוסיף איבר.
    אם האוסף הוא אוסף של מספר שלם, ולא של DataRow כמו שסברתי לומר, אז באמת א"א להוסיף Null. אפשר להתגבר על זה, או להפוך את האוסף מסוג Int לסוג ?Int, וזה מאפשר איברים Null, ישנה עוד אפשרות אולי, אבל זה מאוד תלו ברקע: למה איך ועוד.
    מאוד עוזר גם להראות מה ניסו ואיפה נכשלו.

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

    פורסם במקור בפורום CODE613 ב13/10/2013 20:11 (+03:00)


  • comboBox - WPF
    dovidD dovid

    אנא ערוך את השאלה, היא לא מובנת.

    פורסם במקור בפורום CODE613 ב13/10/2013 15:59 (+03:00)


  • יצוא לקובץ CSV בעברית
    dovidD dovid

    Using משמש בעיקר לוודא שבתום השימוש תיקרא הפונקצייה Dispose.
    וזאת גם אם תוכנ עפה באמצע השימוש (מאחורי הקלעים הקומפיילר בונה tyr מסביב).
    הפונקציה Dispose דואגת לשחרור השימוש/זיכרון מהאובייקט.
    משתמשים בUsing בכל דבר "יקר": קבצים וכדו'.

    בפועל using גם משמשת כבלוק, הצהרת הכותרת שלה והצהרות בתוכה,
    מאבדים את טווח ההכרה מחוצה לה.

    פורסם במקור בפורום CODE613 ב10/10/2013 18:38 (+03:00)


  • יצוא לקובץ CSV בעברית
    dovidD dovid

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

    הקוד דלהלן עובד:

    var fileName = "tests.csv";
    using (StreamWriter sw = new StreamWriter(File.Open(fileName, FileMode.Create), Encoding.UTF8))
    {
        sw.Write("אבג ABC 123");
    }
    

    אני בכלל עובד אחרת: אני קודם יוצר סטרינג ארוך ואח"כ מכניס לתוך הקובץ בבת אחת ככה:

    var strBldr = new StringBuilder();
    strBldr.Append("אבג ABC 123");
    File.WriteAllText(fileName, strBldr.ToString(), Encoding.GetEncoding(1255));
    

    שים לב שכיון שבשם קובץ אפשר לכותב נתיב יחסי, אז אתה לא להשיג את כתובת הנתיב המוחלט.
    לכן אפשר לכתוב בתור שם קובץ "file.csv" והוא יווצר בתייקה בה התוכנה נמצאת.
    או "dir\file.csv" ואז הוא יווצר בתייקה dir שבתוך התיקייה ממנה התוכנה רצה.

    פורסם במקור בפורום CODE613 ב10/10/2013 14:09 (+03:00)


  • מיון לפי מיקוד 7 ב- linq
    dovidD dovid

    בשאילתה אתה מוסיף עמודת ביטוי, ולפיה אתה ממיין.
    הביטוי צריך להיראות ככה:

    Mid([ColumnName], 1, 5)
    

    כאשר ColumnName זה שם העמודה, ואתה ממיין לפי עמודת הביטוי ולא העמודה המקורית.
    שים לב שזה מיון טקסטואלי, כלומר האות 9 גדולה מהאות 8 אפי' שאחרי ה9 יש נגיד רק ספרה אחת ואחרי ה8 יש 4.
    בדרך כלל זה לא משנה כי כל המיקודים באותו אורך (לא פחות ולא יותר מחמש).

    אם אתה רוצה שהמיון יהיה מספרי,
    אתה צריך עטוף את הפונקצייה דלעיל בביטוי Val שממירה למספר.

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

    iif([ColumnName]>99999, [ColumnName]/100, [ColumnName])
    

    ולמיין לפי הביטוי כמובן.

    הצלחה,
    [size=85:fsxvlofl]ותמיד, תמיד, לשאול בפורום...[/size:fsxvlofl]

    [u:fsxvlofl][size=150:fsxvlofl]עריכה:[/size:fsxvlofl][/u:fsxvlofl]
    רק כעת שמתי לב לכותרת בה כתוב LINQ.
    אני חשבתי שהמדובר על אקסס.
    אז בלינק זה יותר פשוט אפי'...

    order by Mikud.SubString(0,5)
    

    או אם זה מספרי:

    order by (Mikud > 99999 ?? Mikud / 100 : Mikud) (0,5)
    

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

    פורסם במקור בפורום CODE613 ב09/10/2013 17:43 (+03:00)


  • בעיה קשה מאוד באקסס - קידוד
    dovidD dovid

    @ארכיטקט

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

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

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

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

    פורסם במקור בפורום CODE613 ב13/10/2013 17:44 (+03:00)


  • בעיה קשה מאוד באקסס - קידוד
    dovidD dovid

    @רחמים

    אולי תעלה כאן איזו דוגמא קלאסית של תוכנה לניהול מכירות כמו Northwind שיש באקסס רק שתהיה עם C#+WPF ?
    תודה.

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

    פתחתי לזה אשכול במדריכים.
    אגב, אני אישית כותב בVB.NET, אך הלומדים בד"כ רוצים C# והיא יותר באופנה.
    אולי נכתוב בשתיהם.

    פורסם במקור בפורום CODE613 ב09/10/2013 13:37 (+03:00)


  • בעיה קשה מאוד באקסס - קידוד
    dovidD dovid

    עכ"פ, אין על מיקרוסופט 🙂
    אבל "הרוצה להחכים", ברגע שיש לך עצבים לעזוב את אקסס (כלומר: ללמוד קצת דברים אחרים),
    אני כאן בשביל לתת לך את כל הדרוש למצוא מזור אחר (כמובן גם מיקרוספטי כמו C#+WPF וכדו').

    פורסם במקור בפורום CODE613 ב09/10/2013 11:26 (+03:00)


  • המרת דף PDF לתמונה עם ITextSharp
    dovidD dovid

    @רחמים

    אבל קיבלתי שגיאה: [code]Could not load file or assembly 'libpdf.dll' or one of its dependencies. ‏‏המודול שצוין לא נמצא.

    שים את כל הDLL בתיקיית ההרצה ונסה שוב.

    @רחמים

    נכון, אבל תקן אותי אם אני טועה, אני חושב שכיון שיש לנו את כל המידע על דף הPDF אנו יכולים ליצור תמונה עם פקודות DrawImage ו DrawString שהרי זה לא בעיה לחלץ מתוך הדף את התמונות שלו וכן כנראה יש דרך לדעת כל אות ואות מה ה X וה Y שלה וכן מה הגופן שלה וכו' וכך אפשר ליצור תמונה שתראה ממש כמו דף ה PDF. מי שמכיר את ITEXT טוב בטח ידע להגיד אם אני צודק או לא.

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

    פורסם במקור בפורום CODE613 ב06/10/2013 13:22 (+03:00)


  • המרת דף PDF לתמונה עם ITextSharp
    dovidD dovid

    מצאתי את הפרוייקט שעשיתי.
    הוא משתמש במחלקה הזאת: https://github.com/mephraim/ghostscriptsharp.
    (צריך לקמפל את הפרוייקט GhostScriptSharp, ולהוסיף רפרנס אליו, וגם לייבא לפרוייקט את הDLL שבתיקייה ThirdParty (זה הGhostScript). במאפייני הDLL בVS צריך לדאוג שיהיה Copy בAction).

    הנה קוד פשוט:

    GhostscriptSharp.GhostscriptWrapper.GeneratePageThumb(fileName, "c:\1.gif", 1, 100, 100)
    

    הפרמטרים: מקור, יעד, עמוד, מימד אורך ורוחב.

    אבל הלינק ההוא מגוגל קוד אולי שווה הצצה.

    פורסם במקור בפורום CODE613 ב03/10/2013 18:49 (+03:00)


  • המרת דף PDF לתמונה עם ITextSharp
    dovidD dovid

    @רחמים

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

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

    פורסם במקור בפורום CODE613 ב03/10/2013 17:43 (+03:00)


  • המרת דף PDF לתמונה עם ITextSharp
    dovidD dovid

    אני עשיתי כזה דבר בעבר ע"י הספרייה GhostScript.

    אינני זוכר בדיוק פרטים, אבל נסה לראות כאלו שעשו, כמו:
    http://www.codeproject.com/Articles/32274/How-To-Convert-PDF-to-Image-Using-Ghostscript-API

    אם אתה עדיין לא מצליח אחפש את הקוד שלי.

    עכשיו בחיפוש מצאתי משהו שנראה קל יותר:
    https://code.google.com/p/lib-pdf/

    פורסם במקור בפורום CODE613 ב03/10/2013 13:04 (+03:00)


  • פוקוס בטופס WPF
    dovidD dovid

    @ayalaleora

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

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

    תודה!

    פורסם במקור בפורום CODE613 ב08/10/2013 11:18 (+03:00)


  • פוקוס בטופס WPF
    dovidD dovid

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

    KeyDown="MethodeName"
    

    (וכמובן גם לטופס עצמו).
    באירוע אתה בודק שהKey הוא Enter ואם כן אתה קורא לפונקציה Focus של הפקד המתבקש.

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

    פורסם במקור בפורום CODE613 ב02/10/2013 16:51 (+03:00)


  • פונקציה בסטרינג C#
    dovidD dovid
    "  fsdfsd".Trim();
    

    פורסם במקור בפורום CODE613 ב02/10/2013 16:41 (+03:00)


  • לחצן לשליחת תודה
    dovidD dovid

    בקישור שבאת יש את הקישורים הדרושים.
    זה מוד להורדה מהאתר של phpbb בשם thanksMod.
    בשביל לעשות את זה חייבים להיות עם הרשאות ניהול.

    פורסם במקור בפורום CODE613 ב01/10/2013 18:53 (+03:00)


  • הקמת פורום (לא מתחרה לזה שאתם גולשים בו.......)
    dovidD dovid

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

    אבל, באופציות בתשלום אני חושב שכן אפשר למצוא משהו. אני מאוד התלהבתי מvBulletin שמציעים לכאורה הכל בכל מכל אבל עולים קרוב לאלף ש"ח.

    פורסם במקור בפורום CODE613 ב30/09/2013 14:21 (+03:00)


  • c shift מהירות
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב29/09/2013 13:11 (+03:00)

  • 1 / 1
  • התחברות

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

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