Парсинг текстового файла, содержащего данные курса валют - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д