Autor Beitrag
Talemantros
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: So 07.12.14 22:43 
Hallo,
wie gehe ich es an, wenn ich bei einem String keine Sonderzeichen und Zahlen zulassen will, sondern nur Buchstaben und Umlaute.

Ich hatte es mal so probiert aber bisher ohne guten Erfolg.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
        public static bool CheckString(string uebergabe)
        {
            string pat = "AÄBCDEFGHIJKLMNOÖPQRSßTUÜVWXYZ";
            bool pruefung = true;

            foreach (char ch in uebergabe)
            {
                if (pat.IndexOf(ch) < 0)
                    pruefung = false;
            }

            return pruefung;
        }
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 07.12.14 23:00 
Du solltest die Schleife auch abbrechen wenn du einen mismatch hast. Sonst prüfst du ja durch bis zum letzten Zeichen und prüfst damit dann eigentlich auch nur das letzte Zeichen von uebergabe da du pruefung immer wieder überschreibst.

Vergiss den Unsinn den ich geschrieben hab. Ich sollte nicht einfach überheblich die üblichen Anfängerfehler annehmen sondern mir den Code auch tatsächlich richtig ansehen. Sorry :oops:
Nach einem 2.ten Blick sieht das für mich eigentlich richtig aus. Die Schleife abzubrechen wäre zwar immer noch eine Verbesserung des Codes würde es aber nicht richtiger machen. Da du schreibst das es irgendwie nicht richtig funktioniert erzähl doch mal kurz welche anderen Erwartungen du hast gegenüber dem was der der Code jetzt tut?

etwas kürzer

ausblenden C#-Quelltext
1:
2:
3:
4:
public static bool CheckString(string uebergabe)
{
    return string.IsNullOrEmpty(uebergabe) || uebergabe.All(x => "AÄBCDEFGHIJKLMNOÖPQRSßTUÜVWXYZ".Contains(x));
}
dsi
Hält's aus hier
Beiträge: 22
Erhaltene Danke: 8



BeitragVerfasst: Di 09.12.14 23:28 
user profile iconTalemantros hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
wie gehe ich es an, wenn ich bei einem String keine Sonderzeichen und Zahlen zulassen will, sondern nur Buchstaben und Umlaute.

Ich hatte es mal so probiert aber bisher ohne guten Erfolg.


Sollen die Strings nur Großbuchstaben enthalten? Falls nicht, musst du auch die Kleinbuchstaben zum String 'pat' hinzufügen.

ausblenden C#-Quelltext
1:
            string pat = "AÄBCDEFGHIJKLMNOÖPQRSßTUÜVWXYZaäbcdefghijklmnoöpqrstuüvwxyz";					
Talemantros Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: Mi 10.12.14 11:06 
Hallo,
teste ich beides mal an.
Danke

Gruß
Daniel