WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 09.03.2007, 07:20   #1
oitt
Gesperrt
 
Registriert seit: 01.10.2006
Beiträge: 1.189


Standard C#: Eingabegültigkeitsüberprüfung Int32/string



Ich stehe vor der Frage (welche mir mein Buch nicht beantworten will), wie man in C# eine Eingabegültigkeitsüberprüfung durchführt.
ZB wird eine Integereingabe verlangt. Was aber, wenn der user einen string oder ein char eingibt? Dann stürzt das Programm mit Fehlermeldung ab. Da bringt auch Convert.ToInt32() nix, scheinbar.

PS: ich sitze vor Linux mit mono

Danke für Ratschläge.

PPS: Ja, ich werde mir eh noch ein Fortgeschrittenenbuch kaufen (müssen).
oitt ist offline   Mit Zitat antworten
Alt 09.03.2007, 07:40   #2
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Gibts in diesen Hochtrabenden Sprachen kein "is numeric"? Das kann ja selbst Cobol schon seit 74....


pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 09.03.2007, 07:46   #3
oitt
Gesperrt
 
Registriert seit: 01.10.2006
Beiträge: 1.189


Standard

jup DANKE!

public static bool IsInteger(string theValue)
{
try
{
Convert.ToInt32(theValue);
return true;
}
catch
{
return false;
}
} //IsInteger

jetzt kanns weitergehn
oitt ist offline   Mit Zitat antworten
Alt 09.03.2007, 09:01   #4
oitt
Gesperrt
 
Registriert seit: 01.10.2006
Beiträge: 1.189


Standard

Und hier das gute Stück Arbeit, falls es wer braucht:

Ein Programm in C# zum Umrechnen von Euro in Schilling und umgekehrt.

// project euro-schilling.exe
//Licence: Public Domain
using System;

namespace EuroSchilling
{

class MainClass
{



public static void Main(string[] args)
{
const double euro = 0.0727;
const double schilling = 13.7603;
double konvbetrag;
string auswahl1 = "1: Euro nach Schilling umwandeln.";
string auswahl2 = "2: Schilling nach Euro umwandeln.";
string auswahl3 = "x: Beenden.";
string betrag;
string eingabe;
do
{
Console.WriteLine("Bitte wählen Sie eine Funktion:\n" + auswahl1 + "\n" + auswahl2 + "\n" + auswahl3);
//Prüfen ob auch kein String angegeben wurde!
eingabe = Console.ReadLine();
switch(eingabe)
{
case "1":
Console.WriteLine("Betrag: ");
betrag = Console.ReadLine();
if(IsInteger(betrag) == true)
{
konvbetrag = Convert.ToDouble(betrag);
Console.WriteLine("{0:f2} Schilling", konvbetrag * schilling);
}
else
{
Console.WriteLine("Bitte eine Zahl angeben!");
}
break;
case "2":
Console.WriteLine("Betrag: ");
betrag = Console.ReadLine();
if(IsInteger(betrag) == true)
{
konvbetrag = Convert.ToDouble(betrag);
Console.WriteLine("{0:f2} Schilling", konvbetrag * euro);
}
else
{
Console.WriteLine("Bitte eine Zahl angeben!");
}
break;
case "x":
break;
default:
continue;
}
} while(eingabe != "x");
Console.ReadLine();
}

public static bool IsInteger(string beingabe)
{
try {
Convert.ToDouble(beingabe);
return true;
}
catch {
return false;
}
}



}
}
oitt ist offline   Mit Zitat antworten
Alt 09.03.2007, 09:10   #5
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Zitat:
falls es wer braucht:
unformatiert brauchts keiner -> verwende doch demnächst den Code-Tag
Code:
     
bin ein Code
       oder doch nicht?
              aber zumindest mit Einrückung
dann bleibt die - hoffentlich vorhandene Strutktur - erhalten

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 09.03.2007, 09:14   #6
oitt
Gesperrt
 
Registriert seit: 01.10.2006
Beiträge: 1.189


Standard

sorry, ok
oitt ist offline   Mit Zitat antworten
Alt 09.03.2007, 20:50   #7
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi,

so macht man das:

PHP-Code:
int number;

Console.Write("Please enter a number: ");
string input Console.ReadLine();

if (
int.TryParse(inputout number))
   
Console.WriteLine("You entered the number [{0}]"number);
else
   
Console.WriteLine("Input string was not a number"); 
fg
hannes
Biri ist offline   Mit Zitat antworten
Alt 09.03.2007, 20:56   #8
oitt
Gesperrt
 
Registriert seit: 01.10.2006
Beiträge: 1.189


Standard

höa! geht ja noch leichter

jetzt muss ich wieder umlernen, denn hab das umständlichere heute schon bis zur vergasung gemacht

danke!
oitt ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:44 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag