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

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы