עמוד 1 מתוך 1

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

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

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

תודה!

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;
}


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

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

הודעהפורסם: 31 דצמבר 2013, 00:20
על ידי ClickOne
יפה!!! בדיוק חשבתי לעצמי כשהתחלתי את הפוסט הזה שזו תהיה הדוגמה הראשונה שאני יביא....

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


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


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

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

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

הודעהפורסם: 31 דצמבר 2013, 08:52
על ידי רחמים
תודה רבה על ההערה החשובה, תיקנתי את ההודעה שלי.

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

הודעהפורסם: 31 דצמבר 2013, 09:30
על ידי mat
למה לכתוב פעמים.

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

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;
}

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

הודעהפורסם: 31 דצמבר 2013, 11:08
על ידי רחמים
תודה רבה!
magicode כשמו כן הוא :)

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

הודעהפורסם: 31 דצמבר 2013, 13:19
על ידי mat
סתם הערות קטנוניות על הקטע הזה למעלה.

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



* למה לעשות כפול שאפשר לעשות 0 פחות i או יותר קצר -i .
* בכלל לא צריך סוגריים על -1 זה סתם מבלבל בעניים.

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

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

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

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

Fatal: ./cache/ is NOT writable.