Laden...

Dateien durchnummerieren und nacheinander speichern

Erstellt von yotta vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.167 Views
Thema geschlossen
Y
yotta Themenstarter:in
1 Beiträge seit 2013
vor 11 Jahren
Dateien durchnummerieren und nacheinander speichern

Hallo,

ich bin neu hier und habe folgende Frage.
Ich habe ein Programm geschrieben, welches Fraktale erzeugt. Diese können als *. png gespeichert werden. funktioniert alles...

Jetzt stehe ich aber vor folgendem Punkt:

Wie bekomme ich es hin, dass das Programm quasi eine batch ausführt also:

rendern
speichern
Dateinamen um 1 erhöhen
zoomen/werte ändern

... und das eben in einer schleife...
ich scheitere daran, die Datei zu speichern und den Dateinamen dann um 1 zu erhöhen.

also

//Rendering

            string str_filename;   
            int filenamectr = 1;
            str_filename=filenamectr.ToString();
            string full_filename = "C:\neu\\" + str_filename + ".png"; 
            filenamectr = Convert.ToInt32(str_filename);
            filenamectr=filenamectr++;
            pictureBox2.Image.Save=(full_filename);

//Wertemodifikation

Ich komm da irgendwie nicht weiter... Es gibt vielleicht einen besseren weg, als mit converts zu arbeiten...

Die Initialisierungen kommen aus der schleife raus...

Vielen Dank
Gruß
Fabian

J
251 Beiträge seit 2012
vor 11 Jahren

Hey,

      filenamectr=filenamectr++;  
  

Daraus dies

filenamectr++;

machen und deine frage zum erhöhen sollte beantwortet sein

ps: das hin und her zwischen int und string solltest du dir evtl. nochmal anschaun und bisschen drüber denken, ob es an manchen stellen nicht notwendig ist

B
357 Beiträge seit 2010
vor 11 Jahren

Steht der Code genau so drin? Da fehlt ein zweiter Backslash bei "C:". Du konvertierst außerdem zuerst den Integer in einen String, dann wieder zurück nach Integer, um ihn dann um 1 zu erhöhen? Brauchst du doch gar nicht.

Diese Zeilen sind daher unnötig.

str_filename=filenamectr.ToString();           
filenamectr = Convert.ToInt32(str_filename);
filenamectr=filenamectr++;

Weiter ist dieses Konstrukt Unsinn. filenamectr++ macht wohl eher, was du willst, ohne Zuweisung auf sich selbst.

Woran scheiterst du denn wirklich? Wird das Bild nicht korrekt gespeichert? Das liegt vielleicht daran, dass du kein ImageFormat beim Speichern mitlieferst. Woher soll dein Programm wissen, dass du ein PNG haben willst? Dateiendungen sind dafür nicht geeignet, das festzustellen.

5.658 Beiträge seit 2006
vor 11 Jahren

Hi yotta,

ansonsten ist der Code auch recht unübersichtlich und an vielen Stellen fehlerhaft. Ich würde es einfach so probieren:


const string fileName = "SomeFileName";
int frameNumber = 0;

// In der Schleife:
string frameFileName = string.Format(@"c:\neu\{0}{1:D4}.png", fileName, frameNumber++);

Christian

Weeks of programming can save you hours of planning

Hinweis von herbivore vor 11 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

Thema geschlossen