הפורום נסגר!

במקומו נפתח פורום חדש, טוב יותר בהרבה מובנים. >>>>
אתם מוזמנים להצטרף אליו, בואו!

ההצטרפות לפורום התכנות החדש כרוכה בתשלום חודשי סמלי.

הצעה: פורום חדש: דוגמאות קוד

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

הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי ClickOne » 30 דצמבר 2013, 10:29

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

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

תודה!
קליקOne - קליק אחד ואתה מסודר!

המרחק בין להבין קוד כתוב, לבין לשפר אותו הוא אדיר, והמרחק ביניהם, לבין לכתוב פרויקט או אפילו להתחיל פרויקט בצורה טובה הוא עוד יותר גדול. [משפט חכם ששמעתי...]
ClickOne
משתמש וותיק
 
הודעות: 930
הצטרף: 29 דצמבר 2013, 09:50
שלח תודה: 1465 פעמים
קיבל תודה: 760 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי רחמים » 30 דצמבר 2013, 22:35

יוזמה ברוכה,
אני בעד.

ובשביל ההתחלה הנה קוד קטן לקבלת שער יציג עדכני:
csharp code
private double BankOfIsraelExchangeRate(DateTime date, string currency = "01")
{
double ExchangeRate = 0;
string XmlUrl =
"http://www.boi.org.il/currency.xml?" +
"rdate=" + date.ToString("yyyyMMdd") + @"&curr=" + currency;
DataSet dtExchangeRate = new DataSet("BankOfIsraelExchangeRate");
dtExchangeRate.ReadXml(XmlUrl);
if (dtExchangeRate.Tables.Count > 1)
ExchangeRate = Convert.ToDouble
(dtExchangeRate.Tables[1].Rows[0]["RATE"]);
// No exchange rate published for this date, then loop 6 days back
else if (dtExchangeRate.Tables.Count > 0)
{
for (int i = 1; i <= 6; i++)
{
DateTime CheckDate = date.AddDays((-1) * i);
string XmlLoopUrl =
"http://www.boi.org.il/currency.xml?" +
"rdate=" + CheckDate.ToString("yyyyMMdd") + @"&curr=" + currency;

DataSet dtLoopExchangeRate =
new DataSet("BankOfIsraelLoopExchangeRate");
dtLoopExchangeRate.ReadXml(XmlLoopUrl);
// Found valid published exchange rate
if (dtLoopExchangeRate.Tables.Count > 1)
{
ExchangeRate = Convert.ToDouble
(dtLoopExchangeRate.Tables[1].Rows[0]["RATE"]);
break;
}
}
}

return ExchangeRate;
}


לקבלת קודי מטבעות נוספים עיין כאן.
הקוד במקורו מכאן, ועשיתי לו שיפוץ קטן כדי להתאימו לזמנינו.
נערך לאחרונה על ידי רחמים בתאריך 31 דצמבר 2013, 08:51, נערך פעם אחת בסך הכל.
סמל אישי של המשתמש
רחמים
משתמש וותיק
 
הודעות: 1215
הצטרף: 02 יולי 2013, 14:31
שלח תודה: 469 פעמים
קיבל תודה: 454 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי ClickOne » 31 דצמבר 2013, 00:20

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

רחמים כתב:
"rdate=" + date.Year + date.Month.ToString("00") +
date.Day.ToString("00") + @"&curr=" + currency;


אפשר לחסוך את השירשור של השנה, החודש והיום ע"י שימוש בזה:
קוד: בחר הכל
date.ToString("yyyyMMdd")


משתמשי VB6 וVBA יכולים להשתמש בזה:
קוד: בחר הכל
format(date,"yyyyMMdd")

כמובן שגם משתמשי VB.NET יכולים להשתמש בזה, אבל אין סיבה לעבוד קשה על פני ToString
קליקOne - קליק אחד ואתה מסודר!

המרחק בין להבין קוד כתוב, לבין לשפר אותו הוא אדיר, והמרחק ביניהם, לבין לכתוב פרויקט או אפילו להתחיל פרויקט בצורה טובה הוא עוד יותר גדול. [משפט חכם ששמעתי...]
ClickOne
משתמש וותיק
 
הודעות: 930
הצטרף: 29 דצמבר 2013, 09:50
שלח תודה: 1465 פעמים
קיבל תודה: 760 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי רחמים » 31 דצמבר 2013, 08:52

תודה רבה על ההערה החשובה, תיקנתי את ההודעה שלי.
סמל אישי של המשתמש
רחמים
משתמש וותיק
 
הודעות: 1215
הצטרף: 02 יולי 2013, 14:31
שלח תודה: 469 פעמים
קיבל תודה: 454 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי mat » 31 דצמבר 2013, 09:30

למה לכתוב פעמים.

למה לא לכתוב ככה.

csharp code
private double BankOfIsraelExchangeRate(DateTime date, string currency = "01")
{
// No exchange rate published for this date, then loop 6 days back
for (int i = 0; i >= -6; i--)
{
string XmlLoopUrl = "http://www.boi.org.il/currency.xml?" +
"rdate=" + date.AddDays(i).ToString("yyyyMMdd") + @"&curr=" + currency;
DataSet dtLoopExchangeRate = new DataSet("BankOfIsraelLoopExchangeRate");
dtLoopExchangeRate.ReadXml(XmlLoopUrl);
// Found valid published exchange rate
if (dtLoopExchangeRate.Tables.Count > 1)
{
return Convert.ToDouble(dtLoopExchangeRate.Tables[1].Rows[0]["RATE"]);
}
}
return 0;
}
mat
משתמש וותיק
 
הודעות: 699
הצטרף: 11 יולי 2013, 13:26
מיקום: MAT
שלח תודה: 92 פעמים
קיבל תודה: 893 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי רחמים » 31 דצמבר 2013, 11:08

תודה רבה!
magicode כשמו כן הוא :)
סמל אישי של המשתמש
רחמים
משתמש וותיק
 
הודעות: 1215
הצטרף: 02 יולי 2013, 14:31
שלח תודה: 469 פעמים
קיבל תודה: 454 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי mat » 31 דצמבר 2013, 13:19

סתם הערות קטנוניות על הקטע הזה למעלה.

קוד: בחר הכל
((-1) * i)



* למה לעשות כפול שאפשר לעשות 0 פחות i או יותר קצר -i .
* בכלל לא צריך סוגריים על -1 זה סתם מבלבל בעניים.
mat
משתמש וותיק
 
הודעות: 699
הצטרף: 11 יולי 2013, 13:26
מיקום: MAT
שלח תודה: 92 פעמים
קיבל תודה: 893 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי רחמים » 31 דצמבר 2013, 14:47

אתה שוב צודק, אלא שהקוד הזה כמו שכבר ציינתי בהודעה למעלה הוא לא שלי אלא בא מהקישור בסוף ההודעה.
אולי הקוד הועתק מרפלקטור או מאיזה מתרגם שפות שדרכם לעשות דברים כאלו.
סמל אישי של המשתמש
רחמים
משתמש וותיק
 
הודעות: 1215
הצטרף: 02 יולי 2013, 14:31
שלח תודה: 469 פעמים
קיבל תודה: 454 פעמים

Re: הצעה: פורום חדש: דוגמאות קוד

הודעהעל ידי KingYes » 31 דצמבר 2013, 23:52

סתם טיפ: אם יש לכם קודים כל כך מעניינים, מומלץ לפרסמם כ-Gist ב-Github. זה יותר נוח לקריאה וגם אכסון.
KingYes
משתמש וותיק
 
הודעות: 72
הצטרף: 31 דצמבר 2013, 23:50
שלח תודה: 2 פעמים
קיבל תודה: 31 פעמים


חזור אל על הפורום

מי מחובר

משתמשים הגולשים בפורום זה: all bots ו 0 אורחים

Fatal: ./cache/ is NOT writable.