soft עזוב את ג'מייל, בPOP3 יש אפשרות לבקש מהשרת לסמן כנקרא?
פורסם במקור בפורום CODE613 ב24/02/2015 19:06 (+02:00)
soft עזוב את ג'מייל, בPOP3 יש אפשרות לבקש מהשרת לסמן כנקרא?
פורסם במקור בפורום CODE613 ב24/02/2015 19:06 (+02:00)
הפרוטוקול POP3 לא מאפשר לשמור מידע כל שהוא בצד שרת, וממילא הדרך היחידה שלו לדלג על מיילים שהוא קרא זה ע"י שמירת הID שלהם בצד הלקוח ודילוג עליהם בכל קריאה.
מחיפוש באינטרנט:
http://stackoverflow.com/a/352347/1271037
It's the responsibility of the POP3 client to check for this.
ובעברית: עניין זה הוא באחריותו של הלקוח - התוכנה שמושכת את המיילים.
פורסם במקור בפורום CODE613 ב24/02/2015 16:31 (+02:00)
יש תגית שאומרת לו שהשיחה נקראה לפי הID שלה.
אני חושב שזה uidl.
אבל ארכיטקט, אתה משתמש בספריה כלשהיא, או מימשת לבד את הפרוטוקול? כי ספריות אמורות להכיל מתודה לזה.
אגב, אם אתה רק קורא, וזה GMAIL, בדוק את זה http://stackoverflow.com/q/989986/1271037. סמן בצד שלך מה כבר קראת וזהו.
פורסם במקור בפורום CODE613 ב24/02/2015 15:25 (+02:00)
@יויו שר
אני צריכה להוסיף תצוגה של טבלה נוספת לדוח crysalReports . יש לי את הקוד בvisual studio . אין לי גישה ליישום crysalReports יש אפשרות להוסיף רק באמצעות visual studio
אנא פתחו אשכול חדש עם פירוט מלא של הבעיה.
פורסם במקור בפורום CODE613 ב15/11/2017 09:49 (+02:00)
א. לא הסברת מה לא היה מובן בנושא החיסכון בזיכרון.
ב. כמה רמות של פירוש זה לא בעץ הויזואלי וממילא מיושבת שאלתך, נכון?
כמה רמות זה אב תצוגה כל שהוא (גם 100 וגם 1), סטייל, ערך ברירת מחדל וכו'.
תוכל לראות את הרשימה פה.
וכעת שנכנסתי שם ראיתי שיש 11.
פורסם במקור בפורום CODE613 ב18/02/2014 16:55 (+02:00)
@דוד ל.ט.
במידה ויש רוחב מפורש, אז נוצר מקום בזיכרון מפורש. החיסכון הענק הוא על הלא מפורש.אם הרוחב לא מפורש צריך להריץ פונקציות כדי לשכלל אותו על פי פקד האב שמכיל אותו וכדומה ושוב הפונקציות זוללות זיכרון כי הן באלפים עבור כל פקד וכל מאפיין.
@דוד ל.ט.
למעשה תמיד מפורש רק השאלה באיזה רמה, ישנם כמעט עשרה רמות כמדומני, התחתון שבהם הוא באלמנט עצמו, ואז אכן אין שום חיסכון בזיכרון.
לאלו רמות אתה מתכוון, ואיך זה חוסך בזיכרון?
באשר לשאלת הפונקציות, אז דבר ראשון פוקנציות זה לא זיכרון, ופונקציה שלא מופעלת נחשבת כלא תופסת משאבים כלל.
דבר שני, מבחינת עיבוד אתה צודק שיש פה עלייה לעומת מאפיין רגיל, במיוחד שזה עובד עם תנאים אבל מושגי עיבוד אלו לא ראויים בכלל ליחס.
מה כוונת המשפט "איך זה חוסך בזיכרון"? אני אולי ינקד את ההודעות הקודמות? או שלא הסברתי מספיק אבל לא הצבעת על נקודה כזו.
באשר לרמות, היה נראה שאתה מכיר לפחות אחת ("פקד האב וכדומה"), בא נאמר שהשאלה של הזיכרון הובנה, וזה נושא חדש להזדמנות אחרת, בסדר
?
פורסם במקור בפורום CODE613 ב18/02/2014 16:18 (+02:00)
@דוד ל.ט.
בWPF יש מאפיינים מיוחדים (DP) שחוסכים זיכרון כי למאה אובייקטים יש משתנה אחד (נגיד Width - רוחב אלמנט), יש שיתוף משאבים בין כלל האובייקטים בתוכנית.ילמדנו רבינו:
איך זה קשור לDP? גם מאפיינים רגילים יכולים כולם להיות קשורים לאותו משתנה?
וגם עצם הדבר לא מובן לי הרי לכל פקד יש רוחב שונה?
קודם שאלה שנייה: במידה ויש רוחב מפורש, אז נוצר מקום בזיכרון מפורש. החיסכון הענק הוא על הלא מפורש. למעשה תמיד מפורש רק השאלה באיזה רמה, ישנם כמעט עשרה רמות כמדומני, התחתון שבהם הוא באלמנט עצמו, ואז אכן אין שום חיסכון בזיכרון.
כעת לשאלה ראשונה: איך זה קשור לDP, גם במאפיינים רגילים אפשר. התשובה היא שלילית. במאפיינים רגילים, אם אתה רוצה שכל המופעים יחלקו זיכרון אחד, אז אתה מצהיר עליהם כסטטיים, ואז גם אם בא לך שאחד יהיה שונה, אז אתה צריך לכתוב קוד מיוחד לזה ולדאוג לנהל ת'עסק. זה הDP חוסכים.
חשוב להבין שבשביל עשרות אובייקטים זה לא משמעותי (תלוי בסוג המאפיין), אבל בחלון XAML פשוט ייתכנו אלפי אלמנטים (לכל אלמנט יש מאות מאפיינים).
פורסם במקור בפורום CODE613 ב18/02/2014 16:00 (+02:00)
ארכיטקט העניינים ממש לא מסובכים כמו שנראה לך...
מאפיין זה סה"כ פונקציה מחזירה ופונקציה מגדירה. כמו כל פונקציה שאנו בונים בתוכנית.
בWPF יש מאפיינים מיוחדים (DP) שחוסכים זיכרון כי למאה אובייקטים יש משתנה אחד (נגיד Width - רוחב אלמנט), יש שיתוף משאבים בין כלל האובייקטים בתוכנית.
פורסם במקור בפורום CODE613 ב18/02/2014 14:44 (+02:00)
כשניגשים למאפיין, במידה ולא אנו כתבנו אותו, יש לקחת בחשבון שזה אפשרי שהוא מבצע פעולה מורכבת מאשר לגשת ולהחזיר ערך משתנה. לדוגמה מאפיין נפח של קוביה יחזיר את הכפל של מימדיו ולא יאחסן זאת בזיכרון, ובמידה ואנו פונים הרבה פעמים (או בצורת כלל: יותר מפעם אחת) למאפיין זה של אותו אובייקט, יותר טוב לשמור את ערכו במשתנה ולגשת אליו שוב ושוב מאשר למאפיין.
אבל מאידך, בכתיבת מאפיינים הכלל המנחה הוא שכשנדרשת פעולה מורכבת להחזרת הערך, לא עושים מאפיין כי אם פונקציה (בתור חיווי למתכנת שזה פעולה יקרה יחסית, ועדיף שהוא ידאג לשמור את הערך במידה והוא צריך אותו שוב).
פורסם במקור בפורום CODE613 ב18/02/2014 10:36 (+02:00)
לא כ"כ הבנתי מה רחמים פתר לך.
האופרטור ?? עובד רק על טיפוסים Nullable שזה כאלו עם סימן שאלה בסוף שם הטיפוס. אני מבין שהDate שלך הוא לא Nullable.
אז מה הפתרון שע"י הסתדרת?
ורחמים, למה הבאת את הקוד עם מתודה זו: static void Main(string[] args)?
אם זה לצרכי בדיקה, אז אתה יכול להשמיט זאת מהקוד בפורום (לא לחיסכון אלא להדגשת נקודת הפתרון.
פורסם במקור בפורום CODE613 ב18/02/2014 10:08 (+02:00)
לדעתי במקרים רגילים מה שאמרת עם העלאה ושמירה במספור ואח"כ שמירה ללקוח עם שם מקור זה דרך נכונה.
בקשר לעריכה בו זמנית, אז באמת צריך לעשות נעילה בזמן ההורדה לעריכה עד סיום העלאה.
זה נכון שלSQL SERVER יש מעלה בניהול אוטומטי של מנגנון הנעילות.
פורסם במקור בפורום CODE613 ב04/03/2014 09:22 (+02:00)
אני הייתי עושה תיקייה עם הרשאות רק למשתמש של הSQL SERVER, ומוחקים וכותבים רק דרכו.
פורסם במקור בפורום CODE613 ב25/02/2014 16:10 (+02:00)
אין ספק שקבצים בDB זה גרוע.
לפעמים צריך לאחסן את חתימת הקובץ (CRC או כל זיהוי אחר) ואז זה בסדר גמור.
שדה בינארי באורך משתנה, ומידע מיותר, זה לדעתי ממש משחית את יעילות הDB.
פורסם במקור בפורום CODE613 ב16/02/2014 14:22 (+02:00)
למה לא טוב לך קישור?
זה רע מאוד להטמיע קובץ במסד לדעתי.
בכל אופן המדריך שהבאת מצויין והוא לא מסובך כ"כ.
צריך לעשות טבלה לקבצים והעמודה תפנה לID מהטבלה הזו. תוכן הקובץ צריך להיות בעמודה בינארית באורך משתנה. זהו זה.
השאלה היא בעיקר איפה אתה רוצה ליישם את התכנות: באקסס, דוט נט, או בSQL SERVER.
בכל השלושה זה אפשרי נראה לי.
פורסם במקור בפורום CODE613 ב16/02/2014 12:49 (+02:00)
אני חושב שכדאי לנעוץ את האשכול הזה [אולי אחרי קצת עריכה] כדי שכל חברי הפורום יהיו מעודכנים וכך הפורום ישגשג יותר ויותר בע''ה.
אני חושב זה אשכול נחמד לצרכי לימוד.
כי בשביל קראת rss יש תוכנות מעולות כבר בשוק, לא?
לדוגמה מה שלKingYes העלה.
פורסם במקור בפורום CODE613 ב16/02/2014 11:15 (+02:00)
@דוד ל.ט.
רחמים, טיימר וטריד, זה כפל.אחד מהם מיותר.
לא הבנתי אותך, תפקיד הטיימר זה להפעיל את הבדיקה כל X זמן, אני הגדרתי על דקה.
ותפקיד הטריד זה לבצע את ההורדה של ה RSS בלא זה יחסום את הממשק.
צודק זו טעות שלי, החלפתי את הטיימר של טריידינג עם הטיימר הזה.
(אכן לכאורה יותר מתאים להחליף אותו בטיימר של טריידינג).
אם אתה משתמש בקוד שלי אתה לא צריך בכלל טיימר משלך, הטיימר כלול בפנים, ושים לב שאין שום טריד.
עריכה:
כעת שמתי לב שאני משתמש בדיוק באותו הטיימר שלך,
וזה אומר שאני כן תוקע את התצוגה בעת הורדה.
אעדכן זאת בהמשך עם טיימר של טריידינג.
פורסם במקור בפורום CODE613 ב16/02/2014 10:52 (+02:00)
רחמים, טיימר וטריד, זה כפל.
אחד מהם מיותר.
פורסם במקור בפורום CODE613 ב16/02/2014 09:37 (+02:00)
לא הבנתי מה הכוונה "טווח זמן לקבל את הקוד".. בכל פתיחה של סוקט מינימלי פשוט מעבירים בפרמטר לפונקציה כמה שניות אתה מוכן לתת ל-Timeout וזהו.. אתה לא אמור לעשות את זה מחוץ לפונקציה.. אלא רק לחכות לקבל מהשרת וזהו.
תראה זה שאלה שלישית שלך על הקוד, תירגע...
דבר ראשון זה לא ממש timeout. timeout של סוקט אני סבור שזה הזמן שבין בקשה לתשובה, ואילו במקרה הורדת קובץ יכול להיות שיש תשובה מהירה אבל זה קובץ גדול, ואז זה ממומש בזרם (stream), שזה בקשות קטנות (אני חושב, לא יודע איך כתבו את המחלקה של webclient). גם במקרה כזה בקוד של רחמים ההורדה תיקטע עקב איטיותה.
דבר שני, אפשר לעשות timeout כשאתה פותח סוקט אבל פה הוא לא פתח כלום אלא השתמש במחלקה קיימת.
בשביל לשנות את הtimeout שלה חייבים לרשת ממנה ולהתאים זאת.
פורסם במקור בפורום CODE613 ב13/02/2014 18:33 (+02:00)
גירסה שלי לקוד.
הקוד הוא הוא מחלקה עם אירוע של אלמנטים חדשים, ואין לה שום תלות ושייכות לאיך שישתמשו איתה.
Public Class RssForumRead
Public Class ItemRss
Public Property authorname As String
Public Property categoryTitle As String
Public Property categoryLink As String
Public Property Content As String
Public Property UpdateAt As Date
Public Sub New(author As String, Cat As String, CatLink As String, Cont As String, At As Date)
authorname = author
categoryTitle = Cat
categoryLink = CatLink
Content = Cont
UpdateAt = At
End Sub
End Class
Public Property Address As String = "http://code.613m.org/feed.php"
Public Property IntervalUpdate As Integer
Get
Return Timer.Interval
End Get
Set(value As Integer)
Timer.Interval = value
End Set
End Property
Private ns As XNamespace = "http://www.w3.org/2005/Atom"
Private lastDate As Date
Private Timer As Timers.Timer
Public Sub New()
Timer = New Timers.Timer(10000)
DownloadData()
AddHandler Timer.Elapsed, AddressOf DownloadData
Timer.Start()
End Sub
Private Function DateFromForumFormat(str As String) As Date
Dim extStr = str.Split("+")(0)
If String.IsNullOrEmpty(extStr) Then Return #1/1/1900#
Return Date.ParseExact(extStr, "yyyy-MM-dd\THH:mm:ss", Globalization.CultureInfo.InvariantCulture)
End Function
Private Sub DownloadData()
Dim xmlDoc = System.Xml.Linq.XDocument.Load("http://code.613m.org/feed.php")
Dim s = xmlDoc.Root.Name
Dim NewEl = From item In xmlDoc.Element(ns + "feed").Elements(ns + "entry")
Let datePub = DateFromForumFormat(item.Element(ns + "published"))
Where datePub > lastDate
Let cat = item.Element(ns + "category")
Select New ItemRss(item.Element(ns + "author").Elements().First().Value,
cat.Attribute("label"),
cat.Attribute("scheme"),
item.Element(ns + "content").Value,
datePub)
If NewEl.Any Then
RaiseEvent NewItems(NewEl)
lastDate = NewEl.First().UpdateAt
End If
End Sub
Public Event NewItems(items As IEnumerable(Of ItemRss))
End Class
פורסם במקור בפורום CODE613 ב13/02/2014 18:14 (+02:00)