You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
4.1 KiB
C#

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!");
}
}
}
}