Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

02.10.2010, 12:14

C# Problem mit StreamReader

Hallo,

Ich wollte aus "Sprit=1.03e7 //Hier wird der Verbrauch angegeben" (ohne "") das auslesen "1.03e7" in einer textbox mit StreamReader. Bei dem 1 Versuch bei der Konsole hat der Test funktionert und wollte nun für winform das machen. Allerdings bekomme ich nichts mehr ausgegeben. Aktuell hab ich es so:

Das ist der Code den ich bei der Konsole verwendet habe:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
 static void Main(string[] args)
        {
            string Buffer = "Sprit=1.03e7      //Hier wird der Verbrauch angegeben";
            string Neuer = "";

            int Token = Buffer.IndexOf("=");
            int Token2 = Buffer.LastIndexOf("//");            
            Neuer = Buffer.Substring(Token + 1, Token2 - Token - 1);

            System.Console.WriteLine(Neuer);
            System.Console.ReadKey();
        }


Und das der Code den ich aktuell bei der WinForm habe:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public string Filtern(string Input, string Search)
        {
            string Output = "";
          
            if (Input.Contains(Search))
            {
                int Token = Input.IndexOf("=");
                int Token2 = Input.LastIndexOf("//");

                if (Token > 0 && Token2 > 0)
                {
                        Output = Input.Substring(Token + 1, Token2 - Token - 1);
                        return Output;
                }
            }
            return Output;
        }

        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "conf Datei (*.conf)|*.conf";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                Pfad = openFileDialog1.FileName;

            StreamReader Reader = new StreamReader(Pfad);

            while (!Reader.EndOfStream)
            {
                string Buffer = Reader.ReadLine();
                textBox1.Text = Filtern(Buffer, "Sprit");
            }
        }


Und eigentlich müsste ich dann den wert von Sprit rausbekommen aber leider bekomme ich garnichts ausgegeben und auch keine Fehler. Ich hab schon mit dem Filtern geschaut aber auch leider vergebens. Wen ich nun noch die anderen ergänzen würde z.B. Speed=120 //Hier der ... dann würde ich auch da kein ergebnis bekommen.
Kann mir jemand sagen wo mein Fehler ist? Und wie ich es richtig mache?

Gruß
rFMG

2

02.10.2010, 20:04

Hallo

Versuch es doch mal mit Split() und schaue, was passiert.

chrische

3

02.10.2010, 20:25

negative :(

4

02.10.2010, 21:27

Hallo

negativ heißt, dass der string nicht an dem übergebenen Zeichen zerschnitten wird? Kannst du mal den Code zeigen.

chrische

5

02.10.2010, 21:55

string Buffer = Rows.Split().Substring(Token + 1, Token2 - Token);
denke ich muss das anders einfügen

6

02.10.2010, 21:59

Hallo

Warum zerschneidest du den string nicht einfach so:

Quellcode

1
2
var Buffer = "Sprit=1.03e7      //Hier wird der Verbrauch angegeben";
var strings[] = Buffer.Split("//");



dann hast du den vorderen und den hinteren Teil. Die kannst du dann weiter zerteilen.


chrische

Werbeanzeige