Autor Beitrag
derjonny
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 15.04.10 10:43 
Hallo ihr lieben. Ich hoffe ich bin im richtigen Abschnitt des Forums...:D
Habe da wiedereinmal eine Frage.
Ich habe eine Textbox aus der möchte ich die Zahlen auslesen die eingegeben werden, diese sollen dann in Double Convertiert werden.
Könnt ihr mir einen Tipp geben was ich falsch mache?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
 if (chBWied1.Checked == true)
            {
                //Veriablenvergabe meiner Gemessenen Werte 
                double Spannung1 = 0;
                double Strom1 = 0;
                double Ergebniss1 = 0;
                //Errechnen des Gesamtwiederstandes
                Console.ReadLine(textBoxSpann1.Text = Convert.ToString(Spannung1));

                Ergebniss1 = Spannung1 / Strom1;
                //Ergebiss Umwandeln in eine Zeichenfolge(string) und ins ergebnissfenster schreiben
                Console.Write(textBoxErgebniss.Text = Convert.ToString(Ergebniss1));
                

            }
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 15.04.10 10:49 
Hallo,

jeder primitive Datentyp bietet dir in .NET die Funktion Parse und TryParse. Den Allgemeinen Converter (Convert) hast du ja bereits im Einsatz. Dieser ist so allerdings nicht notwendig, da jedes Object eine ToString-Methode hat.
ausblenden C#-Quelltext
1:
2:
//hierbei kann eine Exception aufdrehten 
double d = double.Parse(textBoxSpann1.Text);


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
// hierbei wird überprüft
double d ;
if (double.TryParse(textBoxSpann1.Text, out d))
{
    // parsen war erfolgreich (d hat nun den entsprechenden double-Wert vom string)
}
else { 
    // eingabe war kein double
};


Gruß Daniel

Edit:
Willst du nun Werte von der textBox oder der Console einlesen?
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
double spannung = double.Parse(textBoxSpann1.Text);
double strom = double.Parse(textBoxStrom1.Text);

double widerstand = spannung / strom;

textBoxErgebinsse.Text = widerstand .ToString();


AUch will ich dir bei der Eingabe von Zahlen auf die MaskedTextBox bzw. NumericUpDown-Control raten. Damit brauchst du später den Typ nicht mehr überprüfen (TryParse) ... dann wird der Code übersichtlicher und der Benutzer bekommt gleich bei der Eingabe einen auf den Deckel ;)
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 15.04.10 11:01 
:D ähhmmm ja also ich bin noch völliger anfänger muss eine Projektarbeit in der Berufschulemachen.:(

ich möchte den wert von der Textbox einlesen, und dann ausrechnen lassen und in eine andere textbox eingeben lassen.
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 15.04.10 13:28 
Supi ich danke dir hat mir geholfen habe es jetzt ausprobiert uns auch so angewendet...:D
macht spaß hier weil ich immer schnell und hilfreiche antworten bekomme
:D
LG
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 15.04.10 13:33 
Dann vergiss die Console; Daniel hat ja die richtigen Wege gezeigt.

Übrigens solltest du die Verschachtelung von Zuweisungen vermeiden. Beispiel:
ausblenden C#-Quelltext
1:
Console.ReadLine(textBoxSpann1.Text = Convert.ToString(Spannung1));					

Selbst wenn das ginge (ReadLine arbeitet ohne Argumente), wäre es umständlich und zumindest fehleranfällig: Zuerst wird Spannung1 zu einem String gemacht, dieser wird der TextBox zugewiesen, das Ergebnis dieser Zuweisung wird an ReadLine übergeben. Wer blickt da noch durch, welcher Wert zu welchem Zeitpunkt gültig ist.

Aber du willst sowieso den Wert der Spannung als Text an die TextBox geben und nicht an die Console.

Du musst sowieso genau aufpassen, was du machst und was du bearbeitest. .NET und damit C# achten genau auf die Typen. Mit ReadLine wird eine Zeile gelesen; die liefert ein bestimmtes Ergebnis. Willst du etwa das machen?

Genaues Nachdenken vermeidet Umwege und Fehler. Jürgen