[C#] Dateiarbeit, Lesen und Wert suchen

Ich habe mal etwas probiert. Das funktionier bei mir prima ;)

C#:
private void button1_Click(object sender, EventArgs e)
        {
            file = new StreamReader(@filePath); //File zum lesen öffnen

            while (!file.EndOfStream) //solange das ende nicht erreicht wurde
            {
                line = file.ReadLine(); //Linie einlesen
                string[] meineStrings = line.Split(','); //Beim Komma spliten
                for (int i = 0; i < meineStrings.Length; i = i + 2) //Vergleichen (immer +2, damit nur der vordere Wert verglichen wird.
                {
                    if (meineStrings[i] == textBox1.Text)
                    {
                        label1.Text = meineStrings[i + 1];
                    }
                }
            }
        }

Textfile dazu:
Code:
Wert1, Wert1a
Wert2, Wert2a
Wert3, Wert3a
Wert4, Wert4a
 
Öhm ja, das funktioniert bei mir auch.
Könntest du mir noch erklären warum meins nicht ging ?
Ich dachte mein Ablauf stimmt es liegt nur an der Syntax, aber wie es scheint, war das nicht der Fall ;)

Danke auf trotzdem schonmal. Jetzt komme ich wenigstens weiter ;)

Edit: Achja, ich hab dich gleich mal bewertet mit dem Danke Button .
 
Gerade so kann ich dir auch nicht sagen, wieso deines nicht funktioniert hat.

Aber ich glaube es könnte an eine seehr dummen Fehler liegen:
compare müsste man wieder auf false setzten nachdem das Ergebnis ausgegeben wurde:
C#:
if (compare)
 {
//MessageBox.Show(meineStrings[1]);
 Ergebnis.Text = meineStrings[1];
compare = false
}

Vielleicht funktionieren jetzt beide ;)
(Obwohl, die andere ist einwenig einfacher)

evtl noch:
C#:
char[] separators = new char[] { '\r','\n', ',', ' ' };
 
Du willst ja den Eingabewert mit dem Wert1, Wert2, Wert3 usw. vergleiche.
Im Array sind diese Werte so eingeteilt:
C#:
meineStrings[0] = Wert1
meineStrings[1] = Wert1a
meineStrings[2] = Wert2
meineStrings[3] = Wert2a

also musst du immer einen Wert bzw. den Wert "...a" überspringen.
Jetzt vergleist du immer den Eingegebenen wert mit Wert1 dann mit Wert2, dann mit Wert3 usw. Sonst würdest du auch mit Wert1a, Wert2a, Wert3a,... vergleichen
 
O.K. aber was ist wenn ich nach Wert1a suchen wöllte.
Dann müsste ich auch +2 rechnen aber bei Wert1a anfangen.
Also bei Wert1a anfangen immer +2 und dann aber den WErt davor ausgeben.

O.K.
Also die For schleife mti 1 anfangen und
C#:
Ergebnis.Text = meineStrings[i - 1];
 
Zuletzt bearbeitet:
TextFile1.txt:
Code:
wert1,lala
wert2,lulu
wert3,tinkiwinki
wert4,lolo

am Beipiel einer Konsolenanwendung (net 3.5 & linq)
Code:
static void Main(string[] args)
        {
            
            string searchfor = "wert3";

            using (StreamReader tr = new StreamReader("TextFile1.txt"))
            {
                Console.WriteLine(
                    tr.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
                                  .Select(s => s.Split(new string[] { "," }, 2, StringSplitOptions.None))
                                  .Where(s => s[0] == searchfor)
                                  .Select(s => s[1]).FirstOrDefault());
            }
            Console.ReadLine();

        }

Ausgabe:
Code:
tinkiwinki
 

Neue Beiträge

Zurück