Парсинг текстового файла, содержащего данные курса валют - 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();
}
}