using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace Übungen_LF6_WinFormanwendung { public partial class Waehrungsumrechnung : Form { string fileNameInput; string fileNameOutput; double rate = 0.0; public Waehrungsumrechnung() { InitializeComponent(); } private void buttonFileInput_Click(object sender, EventArgs e) { //Filter für Dateiauswahl setzen openFileDialog1.Filter = "CSV-Datei (*.csv)|*.csv|Alle Dateien (*.*)|*.*"; //Dateiauswahldialog if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { fileNameInput = openFileDialog1.FileName; textBoxFileInput.Text = openFileDialog1.FileName; } else { MessageBox.Show("Keine Datei ausgewählt!", "Fehler"); return; } } private void buttonFileOutput_Click(object sender, EventArgs e) { //Filter für Dateiauswahl setzen saveFileDialog1.Filter = "CSV-Datei (*.csv)|*.csv|Alle Dateien (*.*)|*.*"; //Dateiauswahldialog if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { fileNameOutput = saveFileDialog1.FileName; textBoxFileOutput.Text = saveFileDialog1.FileName; } else { MessageBox.Show("Keine Datei ausgewählt!", "Fehler"); return; } } private void buttonCalc_Click(object sender, EventArgs e) { try { rate = Convert.ToDouble(textBoxRate.Text); } catch { MessageBox.Show("Ungültige Eingabe für Wechselkurs"); } //Wenn button gedrückt muss Eingabe vorhanden sein if (rate != 0.0 && textBoxFileInput.Text != "" && textBoxFileOutput.Text != "") { } else { MessageBox.Show("Bitte ein Dateien und Umrechnungskurs wählen!", "Fehler"); return; } try { //Dateileseroutine StreamReader sr = new StreamReader(fileNameInput); StreamWriter sw = new StreamWriter(fileNameOutput); sw.WriteLine(sr.ReadLine()); while (!sr.EndOfStream) { string geleseneZeile = sr.ReadLine(); string[] zeilenArray = geleseneZeile.Split(';'); double costUSD; double costEUR ; if (Double.TryParse(zeilenArray[3], out costUSD)) { costEUR = costUSD * rate; } else { costEUR = Convert.ToDouble(zeilenArray[3]); } zeilenArray[3] = costEUR.ToString(); try { sw.WriteLine("{0};{1};{2};{3}", zeilenArray[0], zeilenArray[1], zeilenArray[2], zeilenArray[3]); } catch { MessageBox.Show("Schreiben Fehlgeschlagen!"); } } // close the stream sw.Close(); sr.Close(); MessageBox.Show("Konvertierung Erfolgreich"); } catch { MessageBox.Show("Lesen Fehlgeschlagen!"); } } } }