AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speichern einer Serie von Dateien

Ein Thema von cltom · begonnen am 19. Sep 2007 · letzter Beitrag vom 19. Sep 2007
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 12:34
Hallo!

folgender Wunsch: es soll eine Serie von Bildern gespeichert werden nach dem Schema
Dateiname1.bmp
Dateiname2.bmp
Dateiname3.bmp

Der User soll via herkömmlichen TSaveDialog Ort und Name ein mal aussuchen, 1, 2, 3, ... wird automatisch ergänzt und eben nacheinander abgespeichert.

Nun habe ich mal folgendes probiert:

Delphi-Quellcode:
With SaveDialog1 do
  begin
    if execute then
      begin
        for i:=1 to 10 do
          begin
             //sinngemäß hier:
             saveimage(filename+inttostr(i));
          end;
      end;
  end;
das geht aber so einmal nicht, da nur die erste Datei abgespeichert wird.

Tipps und Rat? Danke!

cltom
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 12:39
Hallo,

Zitat von cltom:
das geht aber so einmal nicht, da nur die erste Datei abgespeichert wird.
Meinst Du 'Datei' oder 'Bild'? Das sind wei unterschiedliche Dinge

Bild: Es wird nur das erste von zehn Bildern gespeichert, das aber 10x.
Datei: Das Bild wird nur in einer Datei abgespeichert, nicht wie gewünscht in 10.

Ich gehe aber mal davon aus, dass Du meinst, dass nur das erste Deiner 10 Bilder 10x gespeichert wird.

Ich kann aufgrund Deines Codes nur Vermutungen anstellen, da die Erläuterungen zu 'saveimage' fehlen.
Irgendwo musst Du natürlich das zu speichernde Bild auch wechseln. Entweder in Deiner SaveImage-Methode oder vorher, also in etwa so:

Delphi-Quellcode:
With SaveDialog1 do
  begin
    if execute then
      begin
        for i:=1 to 10 do
          begin
             //zuerst sinngemäss soetwas:
             wechsleimage;

             //sinngemäß hier:
             saveimage(filename+inttostr(i));
          end;
      end;
  end;
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#3

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 12:45
hmm, ok. es geht um einzelne Bilder. Das saveimage ist eine Methode von TRChart, einer Chart-Komponente aus der SDL-Component Suite.

das saveimage sieht also in Wahrheit so aus:

RChart1.CopyToBMP(filename+inttostr(i),true) Meine Vermutung war, dass der Ansatz mit dem TSaveDialog so nicht geht, darum habe ich die Details innendrin mal weggelassen.
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#4

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 12:47
ps. es wird übrigens nur das erste Bild abgespeichert.

Um das ganze noch zu erklären, ich erzeuge der Reihe nach Diagramme im RChart und will die dann der Reihe nach abspeichern. Das Erzeugen klappt, sie werden der reihe nach angezeigt, doch abgespeichert wird nur das erste unter dem namen 'dateiname1.bmp'.
  Mit Zitat antworten Zitat
semike

Registriert seit: 30. Nov 2006
19 Beiträge
 
#5

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 12:52
Ich vermute, dass es mit dem Dateinamen Probleme gibt. Es wird der Index i am Ende angehängt. Damit lautet der Dateiname dateiname.bmp1 .. dateiname.bmp10

Hier ein Codeschnipsel (nicht getestet) der das regeln sollte:

Delphi-Quellcode:
procedure Speichern;
var
  strFileName: String;
  i: Integer;
begin
  if SaveDialog1.Execute then
  begin
    strFileName := SaveDialog1.FileName;
    Insert('%d', strFileName, LastDelimiter('.', strFileName)-1);
    for i := 1 to 10 do
    begin
      WechsleImage(i);
      SaveImage(Format(strFileName, [i]);
    end;
  end;
end;
Die Idee ist es, den Dateinamen vorher mit einem Platzhalter für den Index auszustatten.

Hoffe das hilft Dir weiter.

Grüße
Michael
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#6

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 12:57
Zitat von semike:
Ich vermute, dass es mit dem Dateinamen Probleme gibt. Es wird der Index i am Ende angehängt. Damit lautet der Dateiname dateiname.bmp1 .. dateiname.bmp10
Auch wenn Du damit recht hast, ist das nicht die Ursache des Problems. Er hat ja 10 Dateien - nur in allen ist das gleiche Bild enthalten.

Edit:
Wenn Du das so machst,
RChart1.CopyToBMP(filename+inttostr(i),true) dann musst Du natürlich vor dem Aufruf von CopyToBMP auch das nächste Bild in RChart1 laden.
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#7

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 13:18
Zitat von semike:
Ich vermute, dass es mit dem Dateinamen Probleme gibt. Es wird der Index i am Ende angehängt. Damit lautet der Dateiname dateiname.bmp1 .. dateiname.bmp10
....

Die Idee ist es, den Dateinamen vorher mit einem Platzhalter für den Index auszustatten.

Hoffe das hilft Dir weiter.
Jup, hat nicht nur geholfen, sondern auch funktioniert! Danke! Hatte ich nicht daran gedacht, obwohl logisch eigentlich.

Danke Dir!
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#8

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 13:21
Zitat von s-off:
Ich vermute, dass es mit dem Dateinamen Probleme gibt. Es wird der Index i am Ende angehängt. Damit lautet der Dateiname dateiname.bmp1 .. dateiname.bmp10
Auch wenn Du damit recht hast, ist das nicht die Ursache des Problems. Er hat ja 10 Dateien - nur in allen ist das gleiche Bild enthalten.
dann musst Du natürlich vor dem Aufruf von CopyToBMP auch das nächste Bild in RChart1 laden.
nein, wie oben beschrieben, wurde nur das erste Chart gespeichert und das nur ein mal. Den Inhalt des Charts habe ich natürlich aktualisiert und das geht auch, es hat wirklich daran gelegen, dass der Dateiname so nicht stimmte, weil die Extension ja schon dranhängt.

Danke aber dennoch!!
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#9

Re: Speichern einer Serie von Dateien

  Alt 19. Sep 2007, 13:27
P.S. Der Ordnung halber:

Das -1 muss nicht sein, so kommt es an die richtige stelle:

Insert('%d', strFileName, LastDelimiter('.', strFileName));
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz