Autor Beitrag
flohmaus
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 21.10.17 18:38 
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:

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
flohmaus Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 21.10.17 20:10 
Zeig doch mal, wo Du wie weiter rechnest.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
flohmaus Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 22.10.17 10:23 
Guten Morgen Christian,

z.B.: so
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: So 22.10.17 11:01 
Wie ich oben schon schrieb: Du hast bereits die Variable „val“, nutze sie.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".