C# If Abfrage ob zeichen enthalten

  • C#

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    willst du programmieren lernen, oder soll ich vorsagen?
    also falls ersteres kriegst du von mir Gegenfragen, die's dir beibringen (das Programmieren).
    1. Frage (die Gretchenfrage): Welchen Datentyp hat MeinText.Text?
    Das muss aus Pistole geschossen beantwortet werden.
    Ansonsten Hilfe dazu: Video-Tut: Welchen Datentyp hat das Objekt?
    Das was ErfinderDesRades sagt und String.Contains. Sowas ist mit einer kurzen Google-Suche übrigens sehr leicht zu finden. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    ich habs direkt im Visual Studio gesucht :D
    hab da durchgeklickt aber ist nirgends aufgepoppt :rolleyes: deshalb habe ich gedacht frage ich hald mal schnell jemand kann mir das bestimmt gleich sagen..

    will vor dem String split erst fragen ob es das jeweilige Zeichen überhaupt drin hat (da der ort, wo der String herkommt von Hand eingegeben wird und es desshalb evtl garkein trennzeichen gibt...)

    @ErfinderDesRades:
    Naja, ich arbeite in 2Firmen und besuche 2 Abendschulen. ;)
    Für ein Buch lesen reicht die Zeit im Moment nicht. Wird mir auch keine der 2 Firmen bezahlen, deshalb werde ich das später privat in Angriff nehmen. Bis dahin muss ich Ergebnisse liefern. Wie der Code aussieht interessiert keinen - es muss schnell gehen und funktionieren muss er :rolleyes:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „newsletter“ ()

    @newsletter Die IDE bringt doch alle Möglichkeiten, allerdings muss da ein Leerzeichen / Tabulator an der Stelle sein.
    Mit Drücken der Leertaste kommt die Auswahl:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    newsletter schrieb:

    Aber es kommen immer ziemlich viele
    und wenn Du langsam runterscrollst, kommt zu jedem die Deklaration.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    mh die Kontext-Fehler sind irgendwie am schlimmsten :cursing:

    wo kann hier der Fehler liegen:

    C#-Quellcode

    1. if (Items[6].Contains(' ')) //Leerzeichen abfrage
    2. {
    3. string[] StrasseHNrsplit = Items[6].Split(' '); //Split
    4. TxtStrasse.Text = StrasseHNrsplit[0]; //Strasse hinzufügen
    5. TxtHausnummer.Text = StrasseHNrsplit[1]; //Hausnummer hinzufügen
    6. }
    7. else
    8. {
    9. MessageBox.Show("ACHTUNG: ERP-Fehler Adresse1 ist leer oder hat kein Trennzeichen: ' '", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
    10. }
    11. if (Items[8].Length > 2)
    12. {
    13. if (Items[8].Contains(' '))
    14. {
    15. string[] StrasseHNrsplit2 = Items[8].Split(' ');
    16. }
    17. else
    18. {
    19. MessageBox.Show("ACHTUNG: ERP-Fehler Adresse2 hat kein Trennzeichen: ' '", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
    20. }
    21. }
    22. else
    23. {
    24. string StrasseHNrsplit2 = Items[8] = "leer leer";
    25. StrasseHNrsplit2.Split(' ');
    26. }
    27. MasPlz.Text = Items[14]; //Postleitzahl-Array hinzufügen
    28. TxtOrt.Text = Items[10]; //Ort-Array hinzufügen
    29. //Öffne Alternative-Form(2)
    30. FrmAlternative Form2uebergang = new FrmAlternative();
    31. Form2uebergang.anform2str1 = StrasseHNrsplit2[0]; //Übergang -> Form2 Adresse1 ######hier taucht der fehler auf...#####
    32. Form2uebergang.anform2str2 = Items[8]; //Übergang -> Form2 Adresse2
    33. Form2uebergang.anform2plz = Items[14]; //Übergang -> Form2 Plz
    34. Form2uebergang.anform2ort = Items[10]; //Übergang -> Form2 Ort
    35. Form2uebergang.Show();


    Bei dem da kommt der fehler, wieso kann ich den nicht gesplittet an form2 schicken sind doch strings?:
    Form2uebergang.anform2str1 = StrasseHNrsplit2[0]; //Übergang -> Form2 Adresse1


    Die Farbe "Rot" gehört der Moderation. Entfernt. ~Trade

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trade“ ()

    Wenn Du uns nicht sagst, was der Fehler ist, ist das etwas schwer.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    newsletter schrieb:

    C#-Quellcode

    1. Form2uebergang.Show();

    @Trade Da wollte wohl einer VB6 in C# programmieren. :thumbsup:
    @newsletter verstehst Du Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany FrmAlternative Form2uebergang = new FrmAlternative();
    Genau das meint man nur, weil die Naming Conventions nicht beachtet wurden. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Das ist auch eine lokale variable im If-/Else-Block. Die kannst Du da natürlich nicht aufrufen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    ahh also ist es am besten wenn ich das in eine public packe:

    C#-Quellcode

    1. public string StrasseHNrsplit2uebergang;


    C#-Quellcode

    1. if (Items[6].Contains(' ')) //Leerzeichen abfrage
    2. {
    3. string[] StrasseHNrsplit = Items[6].Split(' '); //Split
    4. TxtStrasse.Text = StrasseHNrsplit[0]; //Strasse hinzufügen
    5. TxtHausnummer.Text = StrasseHNrsplit[1]; //Hausnummer hinzufügen
    6. StrasseHNrsplit[0] = StrasseHNrsplit2uebergang;
    7. }


    C#-Quellcode

    1. //Öffne Alternative-Form(2)
    2. FrmAlternative Form2uebergang = new FrmAlternative();
    3. Form2uebergang.anform2str1 = StrasseHNrsplit2uebergang; //Übergang -> Form2 Adresse1
    4. Form2uebergang.anform2str2 = Items[8]; //Übergang -> Form2 Adresse2
    5. Form2uebergang.anform2plz = Items[14]; //Übergang -> Form2 Plz
    6. Form2uebergang.anform2ort = Items[10]; //Übergang -> Form2 Ort
    7. Form2uebergang.Show();



    so müsste das korrekt sein :huh:
    Nein! Das ist eine schlechte Lösung. Damit verletzt Du das OOP-Prinzip. Variablen gehören nie öffentlich. Deklarier die einfach in Deiner Funktion/Methode außerhalb von irgendwelchen Blöcken und fertig.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    C#-Quellcode

    1. string[] StrasseHNrsplit = null;
    2. if (Items[6].Contains(' ')) //Leerzeichen abfrage ######Addresse 1
    3. {
    4. StrasseHNrsplit = Items[6].Split(' '); //Split
    5. TxtStrasse.Text = StrasseHNrsplit[0]; //Strasse hinzufügen
    6. TxtHausnummer.Text = StrasseHNrsplit[1]; //Hausnummer hinzufügen
    7. }
    8. else
    9. {
    10. MessageBox.Show("ACHTUNG: ERP-FEHLER Adresse1 ist leer oder hat kein Trennzeichen: ' '", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
    11. }


    C#-Quellcode

    1. FrmAlternative Form2uebergang = new FrmAlternative();
    2. Form2uebergang.Anform2str1 = StrasseHNrsplit[0]; //Übergang -> Form2 Strasse1
    3. Form2uebergang.Anform2HNr1 = StrasseHNrsplit[1];
    4. Form2uebergang.Show();


    Ist das so richtig? Muss ich unbedingt "Null" zuweisen?
    Macht man das wirklich so?

    @RedFromGermany: Was ist besser als:

    C#-Quellcode

    1. Form2uebergang.Show();

    newsletter schrieb:

    Was ist besser als
    Das meinte ich nicht, es sah mir so aus, als hättest Du da den Klassennamen verwendet, wie halt in VB6.
    Nimm klingende Namen, da liest sich der Quelltext fast wie ein Buch.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!