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



BeitragVerfasst: Fr 06.02.04 17:32 
falls es aus der Überschrift nicht eindeutig hervorgeht:
Ich möchte das meine Datei, die ich in meinem kleinen Prog lade, beim abspeichern den selben Namen wie die geöffnete Datei hat, nur dass davor noch einen Zusatzwort steht.

Das die Datei beim Abspeichern die selben Namen hat, wie die Datei auch heißt, habe ich mit dieser Anweisung realisiert:

ausblenden Delphi-Quelltext
1:
SaveDialog1.Filename :=  OpenDialog1.FileName;					


Wenn ich nun die Datei test.txt öffne (mein Programm sortiert eine TStringList alphabetisch) und wieder speicher möchte, zeigt der SaveDialog auch test.txt automatisch an. Soweit so gut.
Ich möchte nur das er beim abspeichern noch ein Wort davor schreibt.
Beispielsweise sortiert_text.txt

Hat jmd dazu ne brauchbare Lösung?
Die Delphi Hilfe und die Suchfunktion haben mich leider nicht weitergebracht.
Ciao
U.o.N.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.02.04 17:38 
Strings kannst du mit dem Operator "+" zusammensetzten.
UserOhneName Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 06.02.04 17:43 
ja das weiß ich, nur wenn ich das in diesem fall mache, also:
ausblenden Delphi-Quelltext
1:
SaveDialog1.Filename := 'sortiert' + OpenDialog1.FileName;					


öffnet sich der savedialog 1 nicht mehr.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.02.04 17:59 
Hä? Wie rufst du ihn denn auf? Alos ich mache das immer so:
ausblenden Delphi-Quelltext
1:
if OpenDialog1.Execute then					


Aber wenn du sie einmal geöffnet hast, dann kennst du doch den Dateinamen. Merk ihn dir und pack beim Speichern einfach deinen String davor.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var
  Filename: String;
  sl: TStringList;
begin
  if OpenDialog1.Execute then
  begin
    sl := TStringList.Create;
    try
      Filename := OpenDialog1.Filename;
      sl.LoadFromFile(Filename);
      // sortieren
      SaveDialog1.Filename := Filename;
      if SaveDialog1.Execute then
      begin
        sl.SaveToFile('Sortiert_'+SaveDialog1.Filename);
      end;
    finally
        FreeAndNil(sl);
    end;
  end;

So ungefähr, gerade mal schnell hier reingehackt. ;)
cbs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.02.04 19:50 
hi

das geht so einfach nicht

FileName enthält in dem fall den ganzen pfad + dateinamen

mit FileName:= 'sortiert_' + FileName;
lautet FileName dann beispielsweise

ausblenden Delphi-Quelltext
1:
'sortiert_C:\irgendeinedatei'					


du musst erst mit extractfilepath und extractfilename den pfad und den dateinamen rausfiltern und entsprechend mit dem 'sortiert' dazwischen wieder zusammensezten
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.02.04 22:05 
Mist. Das hab eich vergessen. :?
uruz
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.02.04 13:30 
dann nimm es doch einfach so:

ausblenden Delphi-Quelltext
1:
  sl.savetofile(ExtractFilePath(SaveDialog1.Filename) + 'sortiert'+ ExtractFileName(SaveDialog1.Filename));					


ist zwar ned soooo schoen, aber es erfuellt seinen Zweck ;)