Парсинг текстового файла, содержащего данные курса валют - 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х - остальные сам допилю, ибо сил моих уже нет. либо я устал либо руки не оттуда.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace WindowsFormsApplication3
  10. {
  11. public partial class Form1 : Form
  12. {
  13. int USD = 30;
  14. int EUR = 42;
  15. int CHF = 60;
  16. int x;
  17. public Form1()
  18. {
  19. InitializeComponent();
  20. }
  21. private void button1_Click(object sender, EventArgs e)
  22. {
  23. if (radioButton1.Checked) convert(USD);
  24. else if (radioButton2.Checked) convert(EUR);
  25. else if (radioButton3.Checked) convert(CHF);
  26. else MessageBox.Show("Вы не выбрали валюту для перевода");
  27. }
  28.  
  29. private void convert(int Kurs)
  30. {
  31. if (int.TryParse(textBox2.Text, out x))
  32. textBox1.Text = (Kurs * x).ToString();
  33. else
  34. MessageBox.Show("Вы не указали сумму в рублях");
  35. }
  36. private void button2_Click(object sender, EventArgs e)
  37. {
  38. Close();
  39. }
  40. }
  41. }

Решение задачи: «Парсинг текстового файла, содержащего данные курса валют»

textual
Листинг программы
  1. class KursValuta
  2.     {
  3.         public String ShortNameValuta { get; set; }
  4.         public String LongNameValuta { get; set; }
  5.         public Int32 Edinica { get; set; }
  6.         public Double Kurs { get; set; }
  7.     }
  8.  
  9.  
  10. class Program
  11.     {
  12.         private static String text =
  13. @"USD Доллар США 1 30.7194
  14.  EUR Евро 1 40.5619
  15.  CHF Швейцарский франк 1 33.6172
  16.  BYR Белорусский рубль 10000 35.9291
  17.  KRW Вон Республики Корея 1000 28.5911
  18.  CNY Китайский юань 10 49.3152
  19.  MDL Молдавский лей 10 25.4721
  20.  UAH Украинская гривна 10 37.9486
  21.  GBP Фунт стерлингов 1 49.9106
  22.  JPY Японская йена 100 36.5707
  23. ";
  24.  
  25.         static void Main(string[] args)
  26.         {
  27.             String[] massiv = text.Split(new string[] {"\r\n"}, StringSplitOptions.RemoveEmptyEntries);
  28.             String pattern = @"([a-zA-Z]{3})\s([\S\s]*)\s(\d+)\s(\d+\.\d+)";
  29.             Regex regex = new Regex(pattern);
  30.             List<KursValuta> list = new List<KursValuta>();
  31.             foreach (String str in massiv)
  32.             {
  33.                 KursValuta kurs = new KursValuta();
  34.  
  35.                 MatchCollection mc = regex.Matches(str);
  36.                 foreach (Match match in mc)
  37.                 {
  38.                     GroupCollection groups = match.Groups;
  39.                     kurs.ShortNameValuta = groups[1].Value;
  40.                     kurs.LongNameValuta = groups[2].Value;
  41.                     kurs.Edinica = Int32.Parse(groups[3].Value);
  42.                     kurs.Kurs = Double.Parse(groups[4].Value, new System.Globalization.CultureInfo("en-us"));
  43.                 }
  44.                 list.Add(kurs);
  45.             }
  46.  
  47.             foreach (KursValuta valuta in list)
  48.             {
  49.                 Console.WriteLine("{0}; за {1} ед. {2} дают {3} рубля", valuta.ShortNameValuta, valuta.Edinica, valuta.LongNameValuta, valuta.Kurs.ToString(new System.Globalization.CultureInfo("en-us")));
  50.             }
  51.            
  52.             Console.ReadLine();
  53.         }
  54.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы