+ Antworten
Ergebnis 1 bis 7 von 7

Csharp - Alphabet deklarieren

Eine Diskussion über Csharp - Alphabet deklarieren im Forum Technik Ecke. Teil des Off Topic-Bereichs; Moin moin! Ich hab folgendes Problem, ich hätte gerne eine Variable (string salpha) das komplette Alphabet zugewiesen. Also a, b, ...

  1. #1
    데르 외계
    Avatar von zokker13
    Registriert seit
    12.10.2008
    Ort
    Wuppertal
    Beiträge
    6.659
    Name
    Philipp
    Nick
    cWc.zokker13

    Csharp - Alphabet deklarieren

    Moin moin!
    Ich hab folgendes Problem, ich hätte gerne eine Variable (string salpha) das komplette Alphabet zugewiesen.
    Also a, b, c ect.
    Nur weiß ich nicht, wie das geht.

    Im Internet hab ich von irgendwelchen Pattern gelesen, was ich garnicht verstanden habe.

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace layout
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string a = "a";
                string b = "b";
    
                if ("rosnvfj".Contains(a) || "rosnvfj".Contains(b))
                {
                    this.BackColor = Color.Red;
                }
            }
        }
    }
    So sollte das ganze nicht aussehen, also dass ich 52Variablen deklariere und die dann einzeln abfrage.

    Ich hätte es gerne wie folgt:
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace layout
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string alpha = [a-zA-Z]   <===So hab ich das im Netzt gesehen, mit den [a-zA-Z]
    
                if ("rosnvfj".Contains(alpha))
                {
                    this.BackColor = Color.Red;
                }
            }
        }
    }
    Bitte helft mir!

  2. #2
    (:
    Avatar von Liontiger
    Registriert seit
    09.07.2004
    Ort
    Siegen
    Alter
    29
    Beiträge
    1.038
    Name
    Tim
    Nick
    Liontiger
    Clans
    ToC
    Die Sachen die du im Netz gefunden hast, sind offensichtlich auf die Nutzung von regulären Ausdrücken (Regular Expressions) aus. Wie genau die funktionieren solltest du dir bei Interesse mal woanders durchlesen - gibt da jede Menge Quellen zu im Internet.
    Du musst dafür die entsprechende Bibliothek laden (über using System.Text.RegularExpressions; )

    Das Konzept bei solchen Ausdrücken ist, dass man ein Muster definiert und später überprüft, ob ein String diesem Muster entspricht.
    In dem speziellen Fall hier ist eine Möglichkeit für den Ausdruck "[a-zA-Z]*" - das heißt das das Schema einen Ausdruck beschreibt der aus a-z, sowie A-Z besteht, die in beliebiger Reihenfolge verknüpft sind, dazu der "*"-Operator.

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Text.RegularExpressions;
    10.  
    11. namespace layout
    12. {
    13. public partial class Form1 : Form{
    14. Regex alphabet = new Regex("[a-zA-Z]*");
    15.  
    16. public Form1(){
    17. InitializeComponent();
    18. }
    19.  
    20. private void button1_Click(object sender, EventArgs e){
    21. string myString = "rosnvfj";
    22.  
    23. if (alphabet.IsMatch(myString)){
    24. this.BackColor = Color.Red;
    25. }
    26. }
    27. }
    28. }
    Geändert von Liontiger (15.10.2010 um 01:35 Uhr)

  3. #3
    데르 외계
    Avatar von zokker13
    Registriert seit
    12.10.2008
    Ort
    Wuppertal
    Beiträge
    6.659
    Name
    Philipp
    Nick
    cWc.zokker13
    Genau das war das, was ich gelesen habe, ich Wurst hab nur die Syntaxe nie verstanden! Danke erstmmal dafür!
    Bin an meinem Hauptproblem aber immernoch nicht weiter, ich muss mal weiter denken.

    Danke für deine Hilfe!

  4. #4
    (:
    Avatar von Liontiger
    Registriert seit
    09.07.2004
    Ort
    Siegen
    Alter
    29
    Beiträge
    1.038
    Name
    Tim
    Nick
    Liontiger
    Clans
    ToC
    was ist denn das Hauptproblem? Vllt. kann man einen Denkanstoß geben

  5. #5
    UF Stubenkater
    Avatar von Thunderskull
    Registriert seit
    01.11.2004
    Ort
    Hückeswagen
    Alter
    33
    Beiträge
    25.801
    Name
    Christian
    Clans
    Bruderschaft von Nod
    [OFFTOPIC] Man mal wieder ein Thema wo ich null Ahnung von hätte, wie blickt ihr da bloss durch Oo , ich würd bei sowas wo ich nur Codes sehe das wandelnde Orakellexika befragen, andere nennen ihn Osbes ^^

  6. #6
    데르 외계
    Avatar von zokker13
    Registriert seit
    12.10.2008
    Ort
    Wuppertal
    Beiträge
    6.659
    Name
    Philipp
    Nick
    cWc.zokker13
    Zitat Zitat von Liontiger Beitrag anzeigen
    was ist denn das Hauptproblem? Vllt. kann man einen Denkanstoß geben
    Vielleicht!
    Also ich hab zurZeit vor, ein kleines Replaytool raus zu bringen, dafür müss ich wissen, in welcher Zeile der Name des Spieler 1 steht, dann welches Zeichen der erste Buchstabe ist, soweit bin ich schon.
    Nur, ich weiß nicht, wie ich die Zeichen nach den letzten Buchstaben rausschmeiße.
    Ich weiß zwar, dass der Accountname in SC2 max. 12 Buchstaben haben kann, kann das aber nicht programmieren.
    Naja, heute ist ein neuer Tag, hab manchmal geistesblitze wie das mit den max. Buchstaben.

    Ich schreib dann mal hier rein, ob ichs geschafft habe oder nicht!

    Zitat Zitat von Thunderskull Beitrag anzeigen
    [OFFTOPIC] Man mal wieder ein Thema wo ich null Ahnung von hätte, wie blickt ihr da bloss durch Oo , ich würd bei sowas wo ich nur Codes sehe das wandelnde Orakellexika befragen, andere nennen ihn Osbes ^^
    Es geht, ich nehm einfach mal an, dass du zur Zeit nicht in der Materie drin bist, wenn du das ein bisschen kannst gehts eigendlich. =D


    *Edit: Habs geschafft, neuer Tag, neues Glück, danke Liontiger, hast nen Platz in den Credits!
    1.  
    2. using System;
    3. using System.Collections.Generic;
    4. using System.ComponentModel;
    5. using System.Data;
    6. using System.Drawing;
    7. using System.Linq;
    8. using System.Text;
    9. using System.Windows.Forms;
    10. using System.IO;
    11. using System.Text.RegularExpressions;
    12.  
    13. namespace sc2beispiel
    14. {
    15. public partial class Form1 : Form
    16. {
    17. public Form1()
    18. {
    19. InitializeComponent();
    20. }
    21. //Credits: >>Liontiger<< Danke!
    22. Regex alphabet = new Regex("[a-zA-Z]");
    23. string sm = "Player: ";
    24. string spath = @"C:\Mull\test.SC2Replay";
    25. private void button1_Click(object sender, EventArgs e)
    26. {
    27. string[] sfile = File.ReadAllLines(spath);
    28. for (int i = 0; i < sfile.Length; i++)
    29. {
    30. if (i == 2)
    31. {
    32. string szwi = sfile[2];
    33. //27: Erster Buchstabe des Spieler_1 Accountname
    34. //39: Max. letzter Buchstabe des Spieler_1 Accountname
    35. for (int i2 = 27; i2 <= 39; i2++)
    36. {
    37. if (alphabet.IsMatch(szwi[i2].ToString()))
    38. {
    39. //Listet die 'gültigen' Werte in eine Listbox
    40. listBox1.Items.Add(szwi[i2].ToString());
    41. sm = sm + szwi[i2].ToString();
    42. MessageBox.Show(i2.ToString() + ": " + szwi[i2].ToString());
    43. }
    44.  
    45. }
    46. lblLabel.Text = sm;
    47. textBox1.Text = sm;
    48. }
    49. }
    50. }
    51.  
    52. private void Form1_Load(object sender, EventArgs e)
    53. {
    54.  
    55. }
    56. }
    57. }
    58.  
    59.  
    Geändert von zokker13 (16.10.2010 um 17:01 Uhr)

  7. #7
    Hast du dich diesbezüglich schon mit MPQ beschäftigt?
    Ich würde dir in diesem Zusammenhang auch empfehlen eine existierende Bibliothek zu nutzen, da es sonst sicherlich nur unnötigen Entwicklungs- und Wartungsaufwand hervorbringt.

    Ich habe dieses Theme im Übrigen erst jetzt gesehen, sonst hätte ich schon früher etwas dazu geschrieben

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •