WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C#: Eingabegültigkeitsüberprüfung Int32/string (http://www.wcm.at/forum/showthread.php?t=211629)

oitt 09.03.2007 07:20

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

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).

pong 09.03.2007 07:40

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


pong

oitt 09.03.2007 07:46

jup DANKE!

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

jetzt kanns weitergehn :-)

oitt 09.03.2007 09:01

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;
}
}



}
}

pong 09.03.2007 09:10

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

oitt 09.03.2007 09:14

sorry, ok :-)

Biri 09.03.2007 20:50

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

oitt 09.03.2007 20:56

höa! geht ja noch leichter :D

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

danke! :-)


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:39 Uhr.

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