Entwickler-Ecke

C# - Die Sprache - Dateinamen, die am Ende hochgezählte Zahlen enthalten


flohmaus - Sa 21.10.17 18:38
Titel: Dateinamen, die am Ende hochgezählte Zahlen enthalten
Ein herzliches Hallo an die Entwickler-Ecke!

Ich bin neu hier und hoffe, dass ich hier meine Frage richtig platziert habe.


Nun möchte alle Dateinamen (.jpg) aus einem Ordner einlesen. Die Dateinamen haben am Ende eine Zahl im Namen.
Es soll jede Datei, die eine Ungerade Zahl am Ende des Dateinamen hat in einen Ordner <Ungerade> verschoben werden und die Geraden in den Ordner <Gerade>.
(Die Ungeraden sind NIO Bilder, und bei den Geraden handelt es sich um Ergebnisbilder die OK sind)


Wie muss ich da ran gehen?

Aus einem Dateinamen die Zahl am Ende ermitteln mache so:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
           string a = "meinBildtext0000010";
            string b = string.Empty;
            int val;

            for (int i = 0; i < a.Length; i++)
            {
                if (Char.IsDigit(a[i]))
                    b += a[i];
            }

            if (b.Length > 0)
                val = int.Parse(b);

                 textBox1.Text = b.TrimStart(new char[] { '0' });


Allerdings bleibt das Ergebnis ein String, und ich brauche ein Integer.


Könnt Ihr mir bitte helfen?


Grüße Peter

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Sa 21.10.17 18:48

Hallo und :welcome:

In der Variable val steht doch schon ein Integer, den Du benutzen kannst.


Grüße
Christian

P.S.: Wenn Du die Schleife von hinten durchlaufen lässt, sparst Du Dir einige Schleifendurchläufe.


flohmaus - Sa 21.10.17 19:02

Hallo Christian,

vielen Dank für Deine Antwort!

Du hast natürlich Recht mit dem Schleifendurchlauf vom Ende aus.
Aber wenn mit dem Ergebnis weiterrechnen möchte funktioniert es nicht mit dem Hinweis, dass es sich u einen String handelt


Grüße
Peter


Christian S. - Sa 21.10.17 20:10

Zeig doch mal, wo Du wie weiter rechnest.


flohmaus - So 22.10.17 10:23

Guten Morgen Christian,

z.B.: so

C#-Quelltext
1:
2:
var ergebnis = b.TrimStart(new char[] { '0' }) ;
TextBox2.text  = 2 * ergebnis;

Meldung:
Zitat:
Operator kann nicht auf int und String angewendet werden


Grüße
Peter

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Christian S. - So 22.10.17 11:01

Wie ich oben schon schrieb: Du hast bereits die Variable „val“, nutze sie.