Visual Studio 2013 - Textbox suche - Hilfe !

12/29/2013 20:43 JokE®#1
Hallo Com,

Ich habe folgendes Problem:

Ich möchte das wenn man z.B. "8038473"in einen Textbox eingibt, dass dann zu dieser Zahl ein bestimmtes bild angezeigt wird.

Habe schon vieles probiert, nichts funktioniert :(

kann mir einer weiterhelfen ?
12/29/2013 20:50 Beni#2
button1_click
string a=textbox1.Text

try{Int c=converttoint32(a)}
Catch{c=0}
if(c==DeineZahl)
{
Label=Bild
}


so mal grob der aufbau wie ichs machen würde(C#)
12/29/2013 20:58 JokE®#3
danke !
01/01/2014 17:27 NetFramework#4
Ganz einfach.

Code:
string zahlencode = textBox1.Text;

try
{
Convert.ToInt32(zahlencode);

if(*zahl* == zahlencode)
{
Label1.Text = bild;
}
}

catch(Exception ex)
{
Messagebox.Show(ex.Message, ex.Message, MessageBoxButtons.OK, MessageBoxSytle.Information);
}
> Grob dargestellt.

oder

Code:
try
{
Convert.ToInt32(zahlencode);

switch(zahlencode)
{
case "deinezahl":
Label1.Text = bild;
return;
}

}

catch(Exception ex)
{
Messagebox.Show(ex.Message, ex.Message, MessageBoxButtons.OK, MessageBoxSytle.Information);
}
01/02/2014 12:30 Beni#5
Quote:
Originally Posted by NetFramework View Post
Ganz einfach.

Code:
string zahlencode = textBox1.Text;

try
{
Convert.ToInt32(zahlencode);

if(*zahl* == zahlencode)
{
Label1.Text = bild;
}
}

catch(Exception ex)
{
Messagebox.Show(ex.Message, ex.Message, MessageBoxButtons.OK, MessageBoxSytle.Information);
}
> Grob dargestellt.

oder

Code:
try
{
Convert.ToInt32(zahlencode);

switch(zahlencode)
{
case "deinezahl":
Label1.Text = bild;
return;
}

}

catch(Exception ex)
{
Messagebox.Show(ex.Message, ex.Message, MessageBoxButtons.OK, MessageBoxSytle.Information);
}
Ich will ja nix sagen, aber schau mal was ich 3 Tage vor dir gepostet habe.
Außerdem ist das Exception catchen in dem Fall unnötig(in meinen Augen).
01/02/2014 12:34 th0rex#6
Unnötig ? Soweit ich weiß haut Convert.ToInt eine Exception wenn in der Textbox nix oder ein Buchstabe steht. Außerdem sieht mir dein catch unnötiger aus.

Edit:
Convert.ToInt haut ne exception raus sobald nix oder ein Buchstabe drin ist, also ist das catch da nicht unnötig. Dein Code würde nicht einmal compilen und ist unübersichtlicher als NetFrameworks Variante. Wieso willst du bitte eine 0 in einen String packen ? Wenn schon a = "0";. Ergibt für mich aber leider genauso wenig Sinn. Dein int c ist nach dem try auch nicht mehr gültig. Einfach nur nen riesen Fail ist das <: Ich frage mich gerade wofür du try{} catch{} so nutzt o.o
01/02/2014 14:15 Beni#7
Quote:
Originally Posted by omitma View Post
Unnötig ? Soweit ich weiß haut Convert.ToInt eine Exception wenn in der Textbox nix oder ein Buchstabe steht. Außerdem sieht mir dein catch unnötiger aus.

Edit:
Convert.ToInt haut ne exception raus sobald nix oder ein Buchstabe drin ist, also ist das catch da nicht unnötig. Dein Code würde nicht einmal compilen und ist unübersichtlicher als NetFrameworks Variante. Wieso willst du bitte eine 0 in einen String packen ? Wenn schon a = "0";. Ergibt für mich aber leider genauso wenig Sinn. Dein int c ist nach dem try auch nicht mehr gültig. Einfach nur nen riesen Fail ist das <: Ich frage mich gerade wofür du try{} catch{} so nutzt o.o
Also ich weis ja nicht wo du Try/Catch gelernt hast? Wenn er in dem Catch Block keinen Ersatzwert angibt, gibts auch wieder ne Neue Exception? Wenns bei mir failed, catched er halt c=0? Wo ists Problem? Dann kann er ne If-funktion basetln die ihm ein "Fail-Bild" bei c=0 anzeigt? Ne extra Msg-Box bei jedem Bullshit ist einfach nur unnötig und nerfig.

€dit: [Da ich denke du wirst nichts kapieren:]
TRY zu deutsch; Probiere, heißt, dass er convertToInt32 PROBIEREN soll, wenn es NICHT geht, dann soll er die exception fangen(Catch) und c=0 setzen. An meinem Code ist nichts verwerflich.
01/02/2014 14:29 'Heaven.#8
Quote:
Originally Posted by NetFramework View Post
Ganz einfach.
Code:
try
{
Convert.ToInt32(zahlencode);

switch(zahlencode)
{
case "deinezahl":
Label1.Text = bild;
return;
}

}

catch(Exception ex)
{
Messagebox.Show(ex.Message, ex.Message, MessageBoxButtons.OK, MessageBoxSytle.Information);
}

Ich frage mich, wo du hergekommen bist...Aber bitte verschwinde dahin auch wieder :x

Warum "versuchst" du einen String in einen Integer zu parsen, um ihn danach mit einem String zu vergleichen?!

Code:
private bool IsNumeric(this string s)
{
    float  output;
    return float.TryParse(s, out output);
}

private int SafeParse(string s)
{
int output;
var b = int.TryParse(s, out output);
return output;
}







if(TextBox1.Text.IsNumeric())
{
    var b = SafeParse(TextBox1.Text);
    switch (b)
            {
                case 0:
                   do();
                    break;
                case 1:
                   do2();
                    break;
                case 2:
                    do3();
                    break;

            }
}

Habe das ganze jetzt nicht getestet, aber so sollte es funktionieren
01/02/2014 14:44 NetFramework#9
Quote:
Originally Posted by Waka Toa View Post
Ich frage mich, wo du hergekommen bist...Aber bitte verschwinde dahin auch wieder :x

Wird man ja echt großartig für die Hilfe gelobt & zudem wird man auch freundlicherweise noch nett hier aufgenommen...

Ich studiere IT Informatik, Ich glaube, Ich weiß was Ich rede.
01/02/2014 14:49 snow#10
Quote:
Originally Posted by NetFramework View Post
Ich studiere IT Informatik, Ich glaube, Ich weiß was Ich rede.
Ich kenne genügend Informatik-Studenten, die C# mit C verwechseln, das sagt gar nicht aus.

Aber dein Code macht wirklich keinen Sinn:
Code:
Convert.ToInt32(zahlencode);
switch(zahlencode)
{
case "deinezahl":
Du konvertierst ohne das Ergebnis zu sichern & ohne eine Exception abzufangen & vergleichst danach den String.
01/02/2014 14:51 Beni#11
Quote:
Originally Posted by Waka Toa View Post
Warum "versuchst" du einen String in einen Integer zu parsen, um ihn danach mit einem String zu vergleichen?!
Der String "DeineZahl" ist lediglich ein PLATZHALTER für seine Zahl[Int]. :rtfm:
01/02/2014 14:54 th0rex#12
Quote:
Originally Posted by Beni​​ View Post
Also ich weis ja nicht wo du Try/Catch gelernt hast? Wenn er in dem Catch Block keinen Ersatzwert angibt, gibts auch wieder ne Neue Exception? Wenns bei mir failed, catched er halt c=0? Wo ists Problem? Dann kann er ne If-funktion basetln die ihm ein "Fail-Bild" bei c=0 anzeigt? Ne extra Msg-Box bei jedem Bullshit ist einfach nur unnötig und nerfig.

€dit: [Da ich denke du wirst nichts kapieren:]
TRY zu deutsch; Probiere, heißt, dass er convertToInt32 PROBIEREN soll, wenn es NICHT geht, dann soll er die exception fangen(Catch) und c=0 setzen. An meinem Code ist nichts verwerflich.
Hallo dein c ist nur in dem TRY gültig. Geh mal weiter lernen bevor du mich verbessern willst. Und wenn ein try failt sollte man nicht versuchen derselben variable wieder was zuzuweisen, sondern wenn man z.b. eine Lib schreibt gleich neue Exception throwen und/oder nur "aufräumen" (wenn aufräumen bevor du ne exception raushaust ^^). Und wenn du in deinem catch nix neues throwst wird es auch keine neue Exception geben. Und ich glaube du kapierst den Sinn von try, catch und den Gültigkeitsbereich von Variablen nicht.
Ich kann das gerne auch noch einmal einfach erklären :
Du c in try deklarieren, du c nix nach try nutzen können.
Ich würd try und catch an deiner Stelle nochmal komplett neu lernen xD. Dabei kannst du dir auch gleich angucken wo Variablen gültig sind wenn sie an bestimmten Orten deklariert werden.

Kleines Beispiel für vernünftiges try und catch:
Code:
void f(){
 try{
   //something that might throw an exception
 }
 catch(std::exception& err){
   if(can_handle_it_completly){
        // handle it
   }
   else{
     // do what can be done
     throw; // rethrow it
   }
 }
}
So würde die Methode die f() aufruft nur informiert, wenn f() das selbst nicht handeln kann. Dann muss die aufrufende Methode halt gucken was zu tun ist und im Notfall einfach das Programm abbrechen.
01/02/2014 15:16 Beni#13
Ich habs jetzt mal nochmal so geschrieben wie ich es denke. Also bei mir klappts und in diesem Fall ist mir der Rest nun egal.

lg Beni

Video: [Only registered and activated users can see links. Click Here To Register...]
01/02/2014 15:29 th0rex#14
In deinem Beispiel hier hast du dein c in dem try deklariert. In dem Video davor. Macht nen Unterschied meinste nicht ? Dann klappt es natürlich.
01/02/2014 15:33 Beni#15
Das beispiel wurde in ca 20 sec geschrieben nachts aufm Weg innen Club mit dem Handy. Und dannach angeschaut hab ichs mir auch nichtmehr. Naja mein weg klappt, und das mit dem Exception ex ist in meinen Augen Käse, da es nur 2 Exceptions geben kann: Overflow und, dass es einfach ein Falscher Datentyp ist und nicht Konvertiert werden kann.