U3F1ZWV6ZTQ1NTE5MjAwOTA4NjcxX0ZyZWUyODcxNzQ0ODAxNzc1MQ==

كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service


السلام عليكم ورحمة الله وبركاته

الأخوة الأعضاء الكرام, كيف حالكم جميعاً؟
اليوم بإذن الله سوف نتعلم معاً كيفية الحصول على أسعار العملات بإستخدام خدمة الويب الخاصة بخوادم Yahoo عن طريق Visual Basic.NET.

فالحقيقة ليست Yahoo فقط من تقدم تلك الخدمة. فالعديد من الـ Web Services تُمكنك من الحصول على أسعار العملات مُحدثة يومياً ولكن يُمكنك القول أن أفضلها وأسرعها هي Yahoo Exchange Rates Web Service وذلك بحكم عملي وتجربتي مع أكثر من خدمة فلم أجد خدمة أسرع وأكثر إستقراراً من Yahoo فهي أفضل من Google ذاتها.

شرح بسيط لفكرة الخدمة:

خدمات الويب تُشبه -في غايتها- إلى حد كبير ما تُقدمة لك دوال البرمجة كائنية التواجه -Object Oriented Function- فالأمر ليس أكثر من إرسال مُعاملات -Parameters- والحصول على قيمة او نتيجة -Returned Value- ولكن انت هنا تتعامل داخل تطبيقات سطح المكتب -Desktop Applications- وهناك تتعامل مع تطبيقات الويب -Web Applications- وبنفس الطريقة الخدمة تستقبل منك مُعاملين فقط هما:

1-اسم العملة المُحول منها.
2-اسم العملة المُحول إليها.

مثال اريد ان اعرف كم ين ياباني يُساوي الـدولاار امريكية . 

وبالنهاية تُعطيك نتيجة نصية -String- تحتوي على قيمة مزدوجة -Double Data Type- لقيمة التحويل وقيمة تاريخ ووقت -Date Time Data Type- لتوقيت الحصول على السعر للمُزامنة على الشكل التالي:


كود :
'Returns: ""SAREGP=X",1.8355,"11/19/2013","8:53pm""
SAR=Saudi Arabia Reial, EGP=Egyptian Pound, 1.8355=Exchange Rate, 11/19/2013=Date of Rate, 8:83pm=Time of Rate.


ولكن تُمرر المعاملات بصيغة خاصة بالخدمة وتعتمد على الإختصارات العالمية للعملات الورقية تبعاً لكل دولة. فمثلاً الين الياباني حينما أريد أرساله سوف يكون في السياق النصي "JPY" كذلك الدولار الأمريكي سيكون في السياق التالي "USD" ... إلخ.

وفي التالي إليك الإختصارات العالمية الخاصة بجميع العملات الورقية حول العالم والتي سوف تقوم إستخدامها داخل خدمة الويب -موضح اسم العملة الكامل بعد علامة تنصيص-:


إقتباس :
EGP 'Egyptian Pound 
AED 'United Arab Emirates Dirham 
ANG 'Netherlands Antillean Guilder 
ARS 'Argentine Peso 
AUD 'Australian Dollar 
BDT 'Bangladeshi Taka 
BGN 'Bulgarian Lev 
BHD 'Bahraini Dinar 
BND 'Brunei Dollar 
BOB 'Bolivian Boliviano 
BRL 'Brazilian Real 
BWP 'Botswanan Pula 
CAD 'Canadian Dollar 
CHF 'Swiss Franc 
CLP 'Chilean Peso 
CNY 'Chinese Yuan 
COP 'Colombian Peso 
CRC 'Costa Rican Colón 
CZK 'Czech Republic Koruna 
DKK 'Danish Krone 
DOP 'Dominican Peso 
DZD 'Algerian Dinar 
EEK 'Estonian Kroon 
EUR 'Euro 
FJD 'Fijian Dollar 
GBP 'British Pound Sterling 
HKD 'Hong Kong Dollar 
HNL 'Honduran Lempira 
HRK 'Croatian Kuna 
HUF 'Hungarian Forint 
IDR 'Indonesian Rupiah 
ILS 'Israeli New Sheqel 
INR 'Indian Rupee 
JMD 'Jamaican Dollar 
JOD 'Jordanian Dinar 
JPY 'Japanese Yen 
KES 'Kenyan Shilling 
KRW 'South Korean Won 
KWD 'Kuwaiti Dinar 
KYD 'Cayman Islands Dollar 
KZT 'Kazakhstani Tenge 
LBP 'Lebanese Pound 
LKR 'Sri Lankan Rupee 
LTL 'Lithuanian Litas 
LVL 'Latvian Lats 
MAD 'Moroccan Dirham 
MDL 'Moldovan Leu 
MKD 'Macedonian Denar 
MUR 'Mauritian Rupee 
MVR 'Maldivian Rufiyaa 
MXN 'Mexican Peso 
MYR 'Malaysian Ringgit 
NAD 'Namibian Dollar 
NGN 'Nigerian Naira 
NIO 'Nicaraguan Córdoba 
NOK 'Norwegian Krone 
NPR 'Nepalese Rupee 
NZD 'New Zealand Dollar 
OMR 'Omani Rial 
PEN 'Peruvian Nuevo Sol 
PGK 'Papua New Guinean Kina 
PHP 'Philippine Peso 
PKR 'Pakistani Rupee 
PLN 'Polish Zloty 
PYG 'Paraguayan Guarani 
QAR 'Qatari Rial 
RON 'Romanian Leu 
RSD 'Serbian Dinar 
RUB 'Russian Ruble 
SAR 'Saudi Riyal 
SCR 'Seychellois Rupee 
SEK 'Swedish Krona 
SGD 'Singapore Dollar 
SKK 'Slovak Koruna 
SLL 'Sierra Leonean Leone 
SVC 'Salvadoran Colón 
THB 'Thai Baht 
TND 'Tunisian Dinar 
TRY 'Turkish Lira 
TTD 'Trinidad and Tobago Dollar 
TWD 'New Taiwan Dollar 
TZS 'Tanzanian Shilling 
UAH 'Ukrainian Hryvnia 
UGX 'Ugandan Shilling 
USD 'US Dollar 
UYU 'Uruguayan Peso 
UZS 'Uzbekistan Som 
VEF 'Venezuelan Bolívar 
VND 'Vietnamese Dong 
XOF 'CFA Franc BCEAO 
YER 'Yemeni Rial 
ZAR 'South African Rand 
ZMK 'Zambian Kwacha


والأن إلى البرمجة:

الـ Module التالي يحتوي على Function قمت بعملها وأعتمد عليها داخل عملي الخاص وتحتوي على ثلاثة مُعاملات -Parameters- فقط وتعود إليك بـ قيمة مزدوجة -Double Data Type-:


PHP كود :
Imports System.Net 'System.Net.dll
Imports System.Web.Script.Serialization 'System.Web.Extensions.dll
Module mdlCurrencyRate
Public Function Get_Currency_Rate(ByVal currFromName As StringByVal currToName As String) As Double
Dim result As Double 0.0
Dim wbServiceLink "http://www.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s={0}{1}=X"
Dim url As String String.Format(wbServiceLinkcurrFromNamecurrToName)
Dim client As New WebClient()
Dim rates As String client.DownloadString(url'Returns: ""SAREGP=X",1.8355,"11/19/2013","8:53pm""
Dim rate_part As String = Split(rates, ",")(1)
If Double.TryParse(rate_part, result) Then
result = CDbl(rate_part)
End If
Return result
End Function
End Module 


يتطلب المثال أعلاه المكتبات -يتضمنها المِثال المُرفق بالموضوع- الخاصة بـ System.NetSystem.Web.Extensions Name Spaces.

مثال إستخدام الـ Function:


PHP كود :
Dim Saudi_Rial_To_Egypt_Pound As Double Get_Currency_Rate("SAR""EGP"'Result= 1.8355 


المثال السابق يأتي بسعر عملة الريال السعودي بالنسبة للجنية المصري.
ليست هناك تعليقات
إرسال تعليق

إرسال تعليق

من يريد أن يكتب فعليه أن يقرأ

ما يلْفظُ من قوْلٍ إِلا لدَيهِ رَقيبٌ عتيدٌ

الاسمبريد إلكترونيرسالة