Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 25
1

Парсинг текстового файла, содержащего данные курса валют

26.12.2012, 00:49. Показов 1954. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
очень прошу помощи. из 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х - остальные сам допилю, ибо сил моих уже нет. либо я устал либо руки не оттуда.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2012, 00:49
Ответы с готовыми решениями:

Парсинг курса валют. Выкидывает ошибку. Почему?
Учусь программировать. Делаю софт парсинга курса валют. public partial class Form1 : Form {...

Парсинг текстового файла, содержащего программный код
Допустим есть программный код паскаля, мне нужно сделать программу, которая будет преобразововать...

Парсинг курса валют с yandex.ru
c yandex.ru я должен взять курс валют и поставить на свой сайт! <?php function...

Пытаюсь сделать парсинг курса валют
Пытаюсь сделать парсинг курса валют с сайта kurs.com.ua. А именно нужно с вкладки межбанк брать...

3
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
26.12.2012, 01:15 2
Я бы делал так: делил по символу перехода на новую строку, а потом каждую полученную строку делил по пробельному символу. А далее забирал бы последний элемент полученного массива. Если нужно и название валюты, тогда ещё и нулевой элемент.
0
0 / 0 / 0
Регистрация: 28.03.2010
Сообщений: 25
26.12.2012, 01:50  [ТС] 3
можно увидеть реализацию ваших слов в виде кода? текстовый исходник можно упростить до вида

USD 30.7194
EUR 40.5619
CHF 33.6172
BYR 10000 35.9291
KRW 1000 28.5911
CNY 10 49.3152
MDL 10 25.4721
UAH 10 37.9486
GBP 49.9106
JPY 36.5707

дабы не мучиться с пробелами.

возник еще вопрос, как учитывать что не все валюты идут в соотношение 1валюта\ n рублей
0
145 / 129 / 27
Регистрация: 20.12.2010
Сообщений: 242
26.12.2012, 11:35 4
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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();
        }
    }


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 рубля
0
26.12.2012, 11:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2012, 11:35
Помогаю со студенческими работами здесь

Обновление курса валют по инету и фильтрация отображения курса
Добрый день! Отыскал форму которая вытягивает курсы валют. Подскажите, что и как надо прописать,...

Разбиение текстового файла, содержащего четное количество строк, на два текстовых файла
1 разбиения текстового файла, содержащего четное количество строк, на два текстовых файла, в каждый...

Обработка текстового файла, содержащего сведения о студентах
Дан текстовый файл, содержащий сведения о студентах. Need help , может кто может помочь? Как это...

Редактирование текстового файла, содержащего сведения о студентах
Привет. Нужна помощь с решением задачи. Знаю как решить логически но по программному коду че-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru