Set for WebClient.Encoding 1255

30 בספטמבר 2009

  בתפוז נשאלה השאלה הבאה:   איך אפשר לגרום ל - WebClient לשלוח בקשה עם Encoding של 1255 ולא utf8.   בהתחלה מישהו אמר שאפשר להשתמש במאפיין Encoding - כלומר הקוד הבא:   WebClient client = new WebClient(); client.Encoding = Encoding.GetEncoding(1255); string str = client.DownloadString(http://www.google.co.il);     משום מה זה לא עבד - מעיון קצר ב - Reflector מסתבר שהמאפיין הזה משפיע אך ורק על תרגום הבתים שחוזרים מהבקשה, כלומר מאחורי הקלעים מפעילים את המתודה DownloadByte וכדי לדעת באיזה Encoding לתרגם את התוצאה משתמשים במאפיין Encoding - כלומר אין שום קשר בין ההגדרה של המאפיין לבין שליחת ה - Request ב - Encoding הרצוי.   הנה חלק מהקוד שרץ עבור DownloadString   try {     WebRequest request;    ...
תגיות: , , , , ,
5 תגובות

יתומים היינו ואין אב – הסתלקותו של מורי ורבי האדמו"ר מלעלוב זצוק"ל

29 בספטמבר 2009

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

הפוסט לבלוגר המתחיל

25 בספטמבר 2009

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

String extension – IsNullOrEmpty – ToEnum (Enum.Parse)

24 בספטמבר 2009

  אני משתמש די בקביעות עם שני extensions ל - string, וחשבתי לשתף אותם.   הראשון: בדיקה האם מחרוזת אינה null או ריקה בדרך כלל מתבצעת בצורה הבאה string str; if (!string.IsNullOrEmpty(str)) { }   היה הרבה יותר נחמד לולא היינו יכולים לשאול על ה - str - אבל מה לעשות שאולי ה - str הינו null (וזה שאלה מכשילה).   השני: המרה ממחרוזת ל - enum מתבצעת בדרך כלל ככה:   enum NyEnum {     One,     Two } NyEnum data = (NyEnum)Enum.Parse(typeof(NyEnum), "One");     ולכן כתבתי את המחלקה הבאה:   namespace System {     public static class StringExtension     {         public static bool IsNullOrEmpty(this string value)         {             return string.IsNullOrEmpty(value);         }           public static T ToEnum<T>(this string value) ...
3 תגובות

קבלת גודל של תמונה ממערך של בתים בצד השרת

  בתפוז עלתה שאלה, כיצד לקבל מימדים של תמונה שהמקור שלה הוא handler ממערך של בתים.   לדוגמא, נניח שזה קוד ה - html <asp:Image ImageUrl="~/Handler1.ashx" ID="myImg" runat="server" />   הנה קוד ה - handler   public void ProcessRequest(HttpContext context) {     context.Response.ContentType = "image/bmp";       byte array = File.ReadAllBytes(@"c:\IMG_1181.jpg");       context.Response.OutputStream.Write(array, 0, array.Length); }   כעת אנחנו רוצים לדעת מה המימדים של התמונה.   הבעייה טמונה בהתנהגות של בקשות לשרת - למעשה התמונה myImg לא תקבל את התמונה במחזור החיים של הדף, כלומר לא הדף אחראי לתת לאובייקט התמונה את התמונה, אלא אחרי שהדף ירד ללקוח תתבצע עוד Request אל השרת כדי לקבל את התמונה מה - handler, ולכן אנחנו לא יכולים לדעת את מימדי...
אין תגובות

מאחורי הקלעים של Nullable – או ?int

22 בספטמבר 2009

  עמית לעבודה שאל אותי האם כשמגדירים nullable זה יושב ב - stack או ב - heap,   בהתחלה עניתי בלי לחשוב שזה יושב ב - heap, אבל אז חשבנו שזה לא הגיוני כי אם זה יושב ב - heap אז מה כל החכמה בזה ?   ואז הסתכלנו וראינו ש - nullable הוא למעשה struct ולא class, מה שאומר שהגדרה של ?int תשב ב - stack.   ואז שאלנו את עצמנו איך יכול להיות שאפשר לתת את הערך null או לבדוק האם מופע של nullable הוא null.   חקרנו קצת בעזרת ה - reflector ועלינו על הממצאים הבאים:   אין ולא יכול להיות הערך null במופע של nullable,...
תגיות: , ,
אין תגובות

קדימות של אופרטור + על פני אופרטור ==

21 בספטמבר 2009

  לפעמים כשמדבגים מאוד נוח להכניס מחרוזות ל - trace/console.   בקיצר כתבתי את הקוד הבא: Console.WriteLine("myObj == null " + myObj == null);   להפתעתי זה הדפיס רק את הערך false ללא המחרוזת: myObj == null.  (גם כשהערך היה אמור להחזיר את התוצאה true) לאחר קצת מחשבה נזכרתי שהאופרטור + הוא לפני אופרטור ההשוואה - כלומר - מה שקרה זה הדבר הבא:   חיבור של המחרוזת myObj == null למשתנה myObj ואת התוצאה השוונו ל - null, מה שתמיד החזיר את הערך false.     כמובן שאחרי ההבנה הקוד שנכתב היה - Console.WriteLine("myObj == null " + (myObj == null));
תגיות: ,
תגובה אחת

הגדרת Validator עבור כל Item ב – ListView

17 בספטמבר 2009

  בתפוז עלתה שאלה, כיצד ניתן לייצר validator עבור כל פריט ב - ListView בנפרד - כלומר נניח שיש לנו ListView שמציג תיבת טקסט ולחצן בכל שורה, במידה ונוסיף Validator לא נוכל להגיע לשרת במידה ואחד מתיבות הטקסט יהיה ריק.   כדי לפתור את זה אנחנו חייבים לתת לכל Validator ולחצן ValidatorGropu שונה מהאחרים, וזה יראה ככה.   <asp:ListView ID="lv" runat="server">     <ItemTemplate>         <tr style="">             <td>                 <asp:TextBox ID="txt" runat="server" Text='<%# Eval("City") %>' />                 <asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="txt"                     ValidationGroup='<%#Eval("City") %>' ErrorMessage="*"></asp:RequiredFieldValidator>             </td>             <td>                 <asp:Button ID="btn" ValidationGroup='<%#Eval("City")...
תגיות: , ,
אין תגובות

שמירת המצב של העמוד כשעושים Back בדפדפן לעמוד שהיו בו שינויים בתוך UpdatePanel

16 בספטמבר 2009

  הבעייה ידועה.   יש לכם דף שיש בו UpdatePanel עשיתם שינויים בעמוד, עברתם לדף אחר וחזרתם ע"י לחצן Back של הדפדפן כל השנויים שעשיתם נעלמו והדף חזר למצבו ההתחלתי, לעומת זאת אם לא היה UpdatePanel בדף ועברתם לדף אחר כשתחזרו ע"י Back כל השינויים ישמרו.   ב - IE8 יש לזה פיתרון מובנה - אבל זה עניין לפוסט אחר, כאן אני רוצה להראות טריק מעניין שיכול לעזור לפתור את הבעייה.   דוגמא לבעייה: נניח שיש לי Grid על העמוד כברירת מחדל הוא עולה ריק ויש DropDown - שבזמן שהוא משתנה ה - grid מקושר למידע מתאים.   קוד ה - html   <asp:ScriptManager ID="sm" runat="server"> </asp:ScriptManager>   <asp:UpdatePanel ID="udp" runat="server">     <ContentTemplate>           <asp:GridView ID="gv"...
3 תגובות