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

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

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

avr416

@avr416
אודות
פוסטים
1.0k
נושאים
203
שיתופים
0
קבוצות
0
עוקבים
2
עוקב אחרי
0

פוסטים

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

  • שליחת מייל מתוכנה של WPF
    A avr416

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

    פורסם במקור בפורום CODE613 ב17/08/2015 22:23 (+03:00)

    ארכיון code613m

  • הפעלת מתודה אוט' פעם בכמה זמן
    A avr416

    @רחמים

    יש כמה סוגי טיימר
    System.Threading.Timer
    System.Timers.Timer
    ואחרון חביב:
    System.Windows.Forms.Timer
    ודו"ק.

    אשמח אם יהיה לך זמן וכח להסביר לי מה ההבדלים ביניהם,
    ולמה אתה מעדיף יותר את האחרון?
    תודה רבה רבה!!

    פורסם במקור בפורום CODE613 ב18/08/2015 15:34 (+03:00)

    ארכיון code613m

  • הפעלת מתודה אוט' פעם בכמה זמן
    A avr416

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

    פורסם במקור בפורום CODE613 ב17/08/2015 22:07 (+03:00)

    ארכיון code613m

  • חריג מסוג InvalidOperationException
    A avr416

    @avr416

    מה שנראה לי עכשיו.. אולי זה בגלל שאני משתמש בlist רגיל ולא בobserlvCollection (או משהו כזה..)??
    כי נראה לי שהבעיה זה בגלל הבינדינג ולא בגלל המתודה שרצה כשאני נכנס לכרטיסיה הנ"ל.. אלא שכיון שהבינדינג כבר נבנה ועכשיו המקור שלו (הליסט) השתנה (נוספה לו שורה) והוא לא התעדכן על כך.. אז הוא קורס..
    יכול להיות? או שזה לא קשור??
    סליחה אם חפרתי יותר מדי... :lol:

    טוב אז אחרי הרבה דם יזע ודמעות 😉 😉
    עליתי על השגיאה - אכן כן, הבעיה היא שהשתמשתי בליסט ולא בObservableCollection

    בניתי תוכנה קטנה רק עם שני כרטיסיות ובדקתי ואכן כשהשתמשתי בליסט זה קרס (אותה שגיאה) וכששיניתי לObservableCollection - הכל עבד חלק!!
    מסקנה: מהיום בWPF רק אבל רק ObservableCollection!!!

    פורסם במקור בפורום CODE613 ב18/08/2015 18:40 (+03:00)

    ארכיון code613m

  • חריג מסוג InvalidOperationException
    A avr416

    מה שנראה לי עכשיו.. אולי זה בגלל שאני משתמש בlist רגיל ולא בobserlvCollection (או משהו כזה..)??
    כי נראה לי שהבעיה זה בגלל הבינדינג ולא בגלל המתודה שרצה כשאני נכנס לכרטיסיה הנ"ל.. אלא שכיון שהבינדינג כבר נבנה ועכשיו המקור שלו (הליסט) השתנה (נוספה לו שורה) והוא לא התעדכן על כך.. אז הוא קורס..
    יכול להיות? או שזה לא קשור??
    סליחה אם חפרתי יותר מדי... :lol:

    פורסם במקור בפורום CODE613 ב18/08/2015 16:26 (+03:00)

    ארכיון code613m

  • חריג מסוג InvalidOperationException
    A avr416

    רחמים: לא ככ הבנתי אותך. אסביר שוב, יש לי מסך ראשי שבתוכו יש מס' מסכי משנה:

    1. הוסף תורם - בו יש ג' כרטיסיות: א. להזין את פרטי התורם. ב. להזין את פרטי התרומה. ג. להזין את פרטי אמצעי התשלום.
    2. ניהול התרומות - שבו יש כמה כרטיסיות: א. להוסיף תרומה נוספת תחת תורם קיים. ב. הצגת התורמים. ג. הצגת התרומות. ד. חיפוש תורמים / תרומות.
    3. שמירת הנתונים לקובץ שהמשתמש בוחר (יותר מדוייק לתיקייה שהוא בוחר).
    4. טעינת הנתונים מתוך הנ"ל.

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

    לדוד,
    יש שני חריגים סה"כ:
    הראשון ההודעה שלו היא:
    An ItemsControl is inconsistent with its items source.
    See the inner exception for more information.

    השני ההודעה שלו היא:
    Information for developers (use Text Visualizer to read this):
    This exception was thrown because the generator for control 'System.Windows.Controls.DataGrid Items.Count:7' with name '(unnamed)' has received sequence of CollectionChanged events that do not agree with the current state of the Items collection. The following differences were detected:
    Accumulated count 6 is different from actual count 7. [Accumulated count is (Count at last Reset + #Adds - #Removes since last Reset).]

    One or more of the following sources may have raised the wrong events:
    System.Windows.Controls.ItemContainerGenerator
    System.Windows.Controls.ItemCollection
    System.Windows.Data.ListCollectionView
    System.Collections.Generic.List`1[[Person.Donation, Person, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
    (The starred sources are considered more likely to be the cause of the problem.)

    The most common causes are (a) changing the collection or its Count without raising a corresponding event, and (b) raising an event with an incorrect index or item parameter.

    The exception's stack trace describes how the inconsistencies were detected, not how they occurred. To get a more timely exception, set the attached property 'PresentationTraceSources.TraceLevel' on the generator to value 'High' and rerun the scenario. One way to do this is to run a command similar to the following:
    System.Diagnostics.PresentationTraceSources.SetTraceLevel(myItemsControl.ItemContainerGenerator, System.Diagnostics.PresentationTraceLevel.High)
    from the Immediate window. This causes the detection logic to run after every CollectionChanged event, so it will slow down the application.

    תודה רבה!

    פורסם במקור בפורום CODE613 ב18/08/2015 15:30 (+03:00)

    ארכיון code613m

  • חריג מסוג InvalidOperationException
    A avr416

    @רחמים

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

    stack trace =
    ב- System.Windows.Controls.ItemContainerGenerator.Verify()
    ב- System.Windows.Controls.VirtualizingStackPanel.MeasureChild(IItemContainerGenerator& generator, IContainItemStorage& itemStorageProvider, IContainItemStorage& parentItemStorageProvider, Object& parentItem, Boolean& hasUniformOrAverageContainerSizeBeenSet, Double& computedUniformOrAverageContainerSize, Boolean& computedAreContainersUniformlySized, IList& items, Object& item, IList& children, Int32& childIndex, Boolean& visualOrderChanged, Boolean& isHorizontal, Size& childConstraint, Rect& viewport, VirtualizationCacheLength& cacheSize, VirtualizationCacheLengthUnit& cacheUnit, Boolean& foundFirstItemInViewport, Double& firstItemInViewportOffset, Size& stackPixelSize, Size& stackPixelSizeInViewport, Size& stackPixelSizeInCacheBeforeViewport, Size& stackPixelSizeInCacheAfterViewport, Size& stackLogicalSize, Size& stackLogicalSizeInViewport, Size& stackLogicalSizeInCacheBeforeViewport, Size& stackLogicalSizeInCacheAfterViewport, Boolean& mustDisableVirtualization, Boolean isBeforeFirstItem, Boolean isAfterFirstItem, Boolean isAfterLastItem, Boolean skipActualMeasure, Boolean skipGeneration, Boolean& hasBringIntoViewContainerBeenMeasured, Boolean& hasVirtualizingChildren)
    ב- System.Windows.Controls.VirtualizingStackPanel.MeasureOverrideImpl(Size constraint, Nullable1& lastPageSafeOffset, List1& previouslyMeasuredOffsets, Nullable`1& lastPagePixelSize, Boolean remeasure)
    ב- System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint)
    ב- System.Windows.Controls.Primitives.DataGridRowsPresenter.MeasureOverride(Size constraint)
    ב- System.Windows.FrameworkElement.MeasureCore(Size availableSize)
    ב- System.Windows.UIElement.Measure(Size availableSize)
    ב- System.Windows.ContextLayoutManager.UpdateLayout()
    ב- System.Windows.UIElement.UpdateLayout()
    ב- System.Windows.Controls.TabItem.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
    ב- System.Windows.UIElement.OnPreviewGotKeyboardFocusThunk(Object sender, KeyboardFocusChangedEventArgs e)
    ב- System.Windows.Input.KeyboardFocusChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
    ב- System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
    ב- System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
    ב- System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
    ב- System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
    ב- System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
    ב- System.Windows.Input.InputManager.ProcessStagingArea()
    ב- System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
    ב- System.Windows.Input.KeyboardDevice.TryChangeFocus(DependencyObject newFocus, IKeyboardInputProvider keyboardInputProvider, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
    ב- System.Windows.Input.KeyboardDevice.Focus(DependencyObject focus, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
    ב- System.Windows.Input.KeyboardDevice.Focus(IInputElement element)
    ב- System.Windows.UIElement.Focus()
    ב- System.Windows.Controls.TabItem.SetFocus()
    ב- System.Windows.Controls.TabItem.OnMouseLeftButtonDown(MouseButtonEventArgs e)
    ב- System.Windows.UIElement.OnMouseLeftButtonDownThunk(Object sender, MouseButtonEventArgs e)
    ב- System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
    ב- System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
    ב- System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
    ב- System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
    ב- System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
    ב- System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e)
    ב- System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
    ב- System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
    ב- System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
    ב- System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
    ב- System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
    ב- System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
    ב- System.Windows.Input.InputManager.ProcessStagingArea()
    ב- System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
    ב- System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
    ב- System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
    ב- System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
    ב- System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
    ב- MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
    ב- MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
    ב- System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
    ב- System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
    ב- System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
    ב- MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
    ב- MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
    ב- System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
    ב- System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
    ב- System.Windows.Application.RunDispatcher(Object ignore)
    ב- System.Windows.Application.RunInternal(Window window)
    ב- System.Windows.Application.Run(Window window)
    ב- System.Windows.Application.Run()
    ב- AppDonorNew.App.Main() ב- C:\Users\Latitude E7240\Documents\Visual Studio 2015\Projects\AppDonorNew\AppDonorNew\obj\Debug\App.g.cs:שורה 0
    ב- System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
    ב- System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    ב- Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    ב- System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    ב- System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    ב- System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    ב- System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    ב- System.Threading.ThreadHelper.ThreadStart()

    innerException =

    {"Information for developers (use Text Visualizer to read this):\r\nThis exception was thrown because the generator for control 'System.Windows.Controls.DataGrid Items.Count:8' with name '(unnamed)' has received sequence of CollectionChanged events that do not agree with the current state of the Items collection. The following differences were detected:\r\n Accumulated count 7 is different from actual count 8. [Accumulated count is (Count at last Reset + #Adds - #Removes since last Reset).]\r\n\r\nOne or more of the following sources may have raised the wrong events:\r\n System.Windows.Controls.ItemContainerGenerator\r\n System.Windows.Controls.ItemCollection\r\n System.Windows.Data.ListCollectionView\r\n System.Collections.Generic.List`1[[Person.Donation, Person, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]\r\n(The starred sources are considered more likely to be the cause of the problem.)\r\n\r\nThe most common causes are (a) changing the collection or its Count without raising a corresponding event, and (b) raising an event with an incorrect index or item parameter.\r\n\r\nThe exception's stack trace describes how the inconsistencies were detected, not how they occurred. To get a more timely exception, set the attached property 'PresentationTraceSources.TraceLevel' on the generator to value 'High' and rerun the scenario. One way to do this is to run a command similar to the following:\n System.Diagnostics.PresentationTraceSources.SetTraceLevel(myItemsControl.ItemContainerGenerator, System.Diagnostics.PresentationTraceLevel.High)\r\nfrom the Immediate window. This causes the detection logic to run after every CollectionChanged event, so it will slow down the application.\r\n"}

    message =
    An ItemsControl is inconsistent with its items source.
    See the inner exception for more information.

    תודה רבה!

    פורסם במקור בפורום CODE613 ב17/08/2015 22:40 (+03:00)

    ארכיון code613m

  • חריג מסוג InvalidOperationException
    A avr416

    זה ארוך...
    אבל ביקשת :lol:

    viewDetail.png

    viewDetail2.png

    viewDetail3.png

    viewDetail4.png

    viewDetail5.png

    מקווה שיעזור...
    תודה רבה רבה!!

    פורסם במקור בפורום CODE613 ב17/08/2015 22:17 (+03:00)

    ארכיון code613m

  • חריג מסוג InvalidOperationException
    A avr416

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

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

    invalidOpereationException.jpg
    ניסיתי לתפוס אותו ע"י הקוד הבא:

    private void previewDonations_Loaded(object sender, RoutedEventArgs e)
            {
                try
                {
                    foreach (Donation donat in AddTorem.donations)
                    {
                        donat.SumAllDonat = donat.SumAllDonation(donat);
                    }
                }
                catch (InvalidOperationException ioe)
                {
                    MessageBox.Show(ioe.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    

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

    פורסם במקור בפורום CODE613 ב17/08/2015 21:45 (+03:00)

    ארכיון code613m

  • בעיה בפתיחת קובץ CSV באקסל
    A avr416

    @רחמים

    נראה לי שצריך לקודד את הקובץ עם Encoding.Default

    מעולה!! זה פתר את הבעיה!!
    וסתם ליידע כללי מה ההבדל בין encoding.Default ל encoding.Unicode?
    תודה רבה!

    פורסם במקור בפורום CODE613 ב17/08/2015 17:29 (+03:00)

    ארכיון code613m

  • בעיה בפתיחת קובץ CSV באקסל
    A avr416

    כן
    הנהדוגמא1.csv
    את ההוא שהוא בלי סיומת CSV האתר לא נותן לי להעלות :lol:
    (כנראה מטעמי אבטחה??)
    תודה רבה

    פורסם במקור בפורום CODE613 ב16/08/2015 23:15 (+03:00)

    ארכיון code613m

  • בעיה בפתיחת קובץ CSV באקסל
    A avr416

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

    השתמשתי במחלקה הבאה ליצירת CSV (מצאתי אותה ב"גלישת מחסנית" :lol:)

    public class CsvExport<T> where T : class
        {
            public List<T> Objects;
    
            public CsvExport(List<T> objects)
            {
                Objects = objects;
            }
    
            public string Export()
            {
                return Export(true);
            }
    
            public string Export(bool includeHeaderLine)
            {
    
                StringBuilder sb = new StringBuilder();
                //Get properties using reflection.
                IList<PropertyInfo> propertyInfos = typeof(T).GetProperties();
    
                if (includeHeaderLine)
                {
                    //add header line.
                    foreach (PropertyInfo propertyInfo in propertyInfos)
                    {
                        sb.Append(propertyInfo.Name).Append(",");
                    }
                    sb.Remove(sb.Length - 1, 1).AppendLine();
                }
    
                //add value for each property.
                foreach (T obj in Objects)
                {
                    foreach (PropertyInfo propertyInfo in propertyInfos)
                    {
                        sb.Append(MakeValueCsvFriendly(propertyInfo.GetValue(obj, null))).Append(",");
                    }
                    sb.Remove(sb.Length - 1, 1).AppendLine();
                }
    
                return sb.ToString();
            }
    
            //export to a file.
            public void ExportToFile(string path)
            {
                File.WriteAllText(path,Export(),Encoding.Unicode);
            }
    
            //export as binary data.
            public byte[] ExportToBytes()
            {
                return Encoding.UTF8.GetBytes(Export());
            }
    
            //get the csv value for field.
            private string MakeValueCsvFriendly(object value)
            {
                if (value == null) return "";
                if (value is Nullable && ((INullable)value).IsNull) return "";
    
                if (value is DateTime)
                {
                    if (((DateTime)value).TimeOfDay.TotalSeconds == 0)
                        return ((DateTime)value).ToString("yyyy-MM-dd");
                    return ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss");
                }
                string output = value.ToString();
    
                if (output.Contains(",") || output.Contains("\""))
                    output = '"' + output.Replace("\"", "\"\"") + '"';
    
                return output;
    
            }
        }
    

    פורסם במקור בפורום CODE613 ב16/08/2015 22:27 (+03:00)

    ארכיון code613m

  • בעיה בפתיחת קובץ CSV באקסל
    A avr416

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

    תודה רבה!

    פורסם במקור בפורום CODE613 ב16/08/2015 22:15 (+03:00)

    ארכיון code613m

  • הרב דוטנט: סדרת מאמרים על dynamic
    A avr416

    בעקבות זה שלא הכרתי את המושג הנ"ל.. יצאתי לשיטוט קצר במרחבי הרשת
    ומצאתי שהרב דוטנט כתב על זה באריכות סדרה של כמה פוסטים טובים.
    http://blogs.microsoft.co.il/shlomo/2009/07/02/c-40-table-of-content/
    מומלץ בחום לכל מי שלא מכיר :lol:

    פורסם במקור בפורום CODE613 ב11/08/2015 16:01 (+03:00)

    ארכיון code613m

  • איך ליצור שאילתת join בlinq to Object
    A avr416

    החלטתי לנסות לכתוב קצת לתועלת הדורות הבאים (אם בכלל יהיו כאלה שעוד ישתמשו בזה כי הרי כולם היום משתמשים בSQL :lol: :lol: )
    אז חיפשתי היום אצל הרב גוגל שליט"א כיצד אני יוצר את השאילתא הנל (שמטרתה לאחד בין 2 טבלאות ע"פ שדה אחד מקושר)
    אני מחפש בליסט של תרומות ע"פ הפרמטרים שהמשתמש מזין, ואח"כ אני רוצה להזין לו את רשימת התורמים שתרמו את התרומות הנ"ל ושביחד עם זאת יוצגו לו גם נתוני התרומה.
    (כדי להציג לו רק את רשימת התורמים ללא נתוני התרומה - אין צורך להשתמש בJOIN אלא מספיק לכתוב לולאה מקוננת כך:

    List<Donor> donorSearch = new List<Donor>()
    foreach(Donation dona in donatFilter)
                    {
                        foreach(Donor donor in AddTorem.donors)
                        {
                            if (donor.Id == dona.IdDonor)
                                donorSearch.Add(donor);
                        }
                    }
    

    אולם אני רציתי ליצור ליסט חדש שיש בו גם חלק מהמאפיינים של העצם Donor (תורם) וגם חלק מהמאפיינים של העצם (תרומה) Donation.
    לכן כתבתי כך:

    var newlistDonors = from d in donorSearch
                                  join o in donatFilter on d.Id equals o.IdDonor
                                  select new { d.Id, o.IdDonation, d.FirstName, d.LastName, d.Adress, d.Tel, d.Email,
                                      o.SumDonation, o.SumAllDonat, o.StartDonation, o.SumMonthDonat };
    

    נסביר מעט:
    בשורה הראשונה אני יוצר משתנה ומגדיר לו שיריץ את השאילתה על ליסט בשם donorSearch (שזהו הליסט של תוצאות החיפוש)
    אח"כ אני מגדיר לו שהjoin הוא על ליסט בשם donatFilter כאשר ההשואה בין שני הליסטים תתבצע ע"פ הפרמטר id
    ואז אני נותן לו פקודת select שיצור עצם חדש ובתוכו אני בוחר איזה מאפיינים אני רוצה מהעצם של הליסט הראשון ואיזה אני רוצה משל האחרון, והוא מאחד ביניהם ויוצר לי ליסט חדש עם עצם מסוג חדש שכולל את כל המאפיינים הללו.
    אח"כ אני לוקח את הליסט החדש שנוצר לי ומציג אותו למשתמש!!

    פורסם במקור בפורום CODE613 ב10/08/2015 23:36 (+03:00)

    ארכיון code613m

  • רקורסיב בJS
    A avr416

    אני לא מבין js אבל אנסה להסביר את מה שהבנתי בדברי softs ואולי זה יעזור לך אהרון..
    אם אני סתם מקשקש שטויות - אז תתקנו אותי :lol: :lol:
    קודם כל, הוא הסביר לך ש"כל רקורסיה מתבצעת בעליה ולא בירידה":
    כלומר, כיון שפעולה רקורסיבית היא פעולה שקוראת לעצמה עד תנאי העצירה שלה, אז החישוב של הפונקציה מתבצע רק לאחר שהגענו לתנאי העצירה וזה הכונה "ירידה" דהיינו שהיא יורדת ויורדת ויורדת (קוראת לעצמה שוב ושוב) עד שהיא עוצרת, ואז מבצעת את פעולת החישוב על הנתונים שיש באותו פעם (אצלך זה 1 1 ) ואז היא מחזירה את הערך 1 לפונקציה שקראה לה (וזה הנקרא "עליה"), וממילא הפונקציה שקראה לה הייתה 2 ) ולכן היא מבצעת את החישוב 2 G כשG זה הערך שהתקבל מהחישוב בפונקציה התחתונה יותר (כאן זה 1).
    ממילא כשהיא עולה לפונקציה הקודמת שקראה לה היא מחזירה לG את הערך 2, ולכן מתבצע 3G והתוצאה היא 6 והיא נשמרת במשתנה G.
    וממילא למעלה יותר 4
    6 = 24
    ובסוף 5 *24 והתוצאה 120.
    ולכן הוא גם אמר לך שאין פה שום פעולת חיבור אלא רק כפל.
    את מה שציינת N הוא הגדיר כG, וזה כנראה אותו דבר כיון שהN-1 מתבצע רק בשעת הירידה לרקורסיה לא בשעת העליה, ולכן כשהיא עולה הערך של N ושל N-1 אינו אותו דבר.

    צירפתי לך כאן קישור לקובץ שמרחיב על רקורסיה ובעמודים 5-7 מתייחס בדיוק להסבר של השאלה אותה העלית (זה נקרא בעיית ה'עצרת') ולהבדל בין סוגי הפעולות הרקורסיביות.
    ושוב, כמו שsofts אמר זה לא קשור לJS אלא לתכנות כללי.
    בהצלחה!

    פורסם במקור בפורום CODE613 ב13/08/2015 10:45 (+03:00)

    ארכיון code613m

  • ייעול של פונקציות החיפוש
    A avr416

    תודה רבה soft על כל העזרה עם הפונקציות!!דרך זה למדתי על עולם שלם שלא כ"כ הכרתי..
    (על כל ספריית הReflection "שיקוף" בלע"ז :lol: )
    לאט לאט אני מגלה עולם..
    ובכל אופן זו הייתה טעות שלי.. הפונקציה הראשונה עובדת טוב גם על מאפיינים של INT וDOUBLE, הייתה לי שגיאה אחרת שבגללה הוא זרק לי את החריג שהערך אינו מתאים 😢
    בכל אופן תיקנתי אותה.. ועכשיו הכל רץ חלק!! (גם אם אני משתמש בפונקציה הראשונה וגם אם בשניה..)

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

    ארכיון code613m

  • ייעול של פונקציות החיפוש
    A avr416

    @softs

    return lst.Where(d => Match((pi.GetValue(d) ?? "").ToString(), Val.ToString(), contains
    
    public static bool Match(string sLeft,string sRight, bool contains)
    {
        return (sLeft == sRight || (contains && sLeft.Contains(sRight)));
    }
    

    אשמח אם תוכל להסביר לי מה בעצם אתה עושה ב2 השורות הללו?
    תודה רבה רבה!! כנראה שיש לי עוד הרבה פערים להשלים :lol: :lol:

    פורסם במקור בפורום CODE613 ב11/08/2015 16:08 (+03:00)

    ארכיון code613m

  • ייעול של פונקציות החיפוש
    A avr416

    תודה רבה!
    תיקון קטן..
    בפונקציה match צריך להוסיף static אחרת זה מחזיר שגיאה..

    פורסם במקור בפורום CODE613 ב11/08/2015 14:59 (+03:00)

    ארכיון code613m

  • ייעול של פונקציות החיפוש
    A avr416

    @softs

    פונקציה כללית לחיפוש יכולה להיראות כך:
    public static IEnumerable<T> SearchString<T>(IEnumerable<T> lst, string sProperty, string sVal)
    {

        MemberInfo mi = ((MemberInfo)typeof(T).GetField(sProperty) ?? (MemberInfo)typeof(T).GetProperty(sProperty));
    
        if (mi == null) throw new ArgumentException("Field/Property does not exists", "sProperty");
        
        if (mi.MemberType == MemberTypes.Property) 
        {
            return lst.Where(d => (((PropertyInfo)mi).GetValue(d) ?? "").ToString().Contains(sVal));
        }
        else
        {
            return lst.Where(d => (((FieldInfo)mi).GetValue(d) ?? "").ToString().Contains(sVal));
        }
    }
    

    הפונקציה הזו טובה כשהערך הוא string
    ניסיתי לכתוב מתודה גנרית דומה שיכולה לחפש כשהמאפיין הוא מסוג double או int (כיון שעם הפונקציה הזאת הוא זרק לי חריג שהערך אינו מתאים).
    לא הצלחתי..
    ניסיתי לכתוב בתוך הcontains (double.parse) ואז את הערך.. אבל זה לא הצליח כיון שלפני זה יש Tostring ניסיתי למחוק את זה אבל אז הוא לא נותן לי את הcontains.. בקיצור - הסתבכתי 😢
    אשמח לשמוע מה לעשות...
    וגם מדוע בכלל אתה צריך את הtostring הזה?
    תודה רבה!!

    פורסם במקור בפורום CODE613 ב10/08/2015 23:20 (+03:00)

    ארכיון code613m
  • 1 / 1
  • התחברות

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

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