Парсинг текстового файла, содержащего данные курса валют - C#
Формулировка задачи:
очень прошу помощи. из txt файла содержащего данные курса валют:
USD Доллар США 1 30.7194
EUR Евро 1 40.5619
CHF Швейцарский франк 1 33.6172
BYR Белорусский рубль 10000 35.9291
KRW Вон Республики Корея 1000 28.5911
CNY Китайский юань 10 49.3152
MDL Молдавский лей 10 25.4721
UAH Украинская гривна 10 37.9486
GBP Фунт стерлингов 1 49.9106
JPY Японская йена 100 36.5707
нужно распарсить в код программы. а именно в значения самих валют дабы они сами не были прописаны в коде. буду очень признателен тем кто откликнется, и покажет как это делается на моем примере. хотя бы для первых 3х - остальные сам допилю, ибо сил моих уже нет. либо я устал либо руки не оттуда.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { int USD = 30; int EUR = 42; int CHF = 60; int x; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (radioButton1.Checked) convert(USD); else if (radioButton2.Checked) convert(EUR); else if (radioButton3.Checked) convert(CHF); else MessageBox.Show("Вы не выбрали валюту для перевода"); } private void convert(int Kurs) { if (int.TryParse(textBox2.Text, out x)) textBox1.Text = (Kurs * x).ToString(); else MessageBox.Show("Вы не указали сумму в рублях"); } private void button2_Click(object sender, EventArgs e) { Close(); } } }
Решение задачи: «Парсинг текстового файла, содержащего данные курса валют»
textual
Листинг программы
class KursValuta { public String ShortNameValuta { get; set; } public String LongNameValuta { get; set; } public Int32 Edinica { get; set; } public Double Kurs { get; set; } } class Program { private static String text = @"USD Доллар США 1 30.7194 EUR Евро 1 40.5619 CHF Швейцарский франк 1 33.6172 BYR Белорусский рубль 10000 35.9291 KRW Вон Республики Корея 1000 28.5911 CNY Китайский юань 10 49.3152 MDL Молдавский лей 10 25.4721 UAH Украинская гривна 10 37.9486 GBP Фунт стерлингов 1 49.9106 JPY Японская йена 100 36.5707 "; static void Main(string[] args) { String[] massiv = text.Split(new string[] {"\r\n"}, StringSplitOptions.RemoveEmptyEntries); String pattern = @"([a-zA-Z]{3})\s([\S\s]*)\s(\d+)\s(\d+\.\d+)"; Regex regex = new Regex(pattern); List<KursValuta> list = new List<KursValuta>(); foreach (String str in massiv) { KursValuta kurs = new KursValuta(); MatchCollection mc = regex.Matches(str); foreach (Match match in mc) { GroupCollection groups = match.Groups; kurs.ShortNameValuta = groups[1].Value; kurs.LongNameValuta = groups[2].Value; kurs.Edinica = Int32.Parse(groups[3].Value); kurs.Kurs = Double.Parse(groups[4].Value, new System.Globalization.CultureInfo("en-us")); } list.Add(kurs); } foreach (KursValuta valuta in list) { Console.WriteLine("{0}; за {1} ед. {2} дают {3} рубля", valuta.ShortNameValuta, valuta.Edinica, valuta.LongNameValuta, valuta.Kurs.ToString(new System.Globalization.CultureInfo("en-us"))); } Console.ReadLine(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д