Autor Beitrag
Locke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
Delphi 7 PE
BeitragVerfasst: Mo 23.01.06 13:14 
Hi Leute,
ich habe gerade ein Problem,
unzwar macht mein programmiertes programm ein Autosave.
Leider wird die dabei erstellte Datei nicht im Application Dir gespeichert sondern woanders.
Ich lade eine Textdatei (welche sich auf dem Desktop befindet) in den Editor und und der Autosave erfolgt dann auch auf dem Desktop.
Dies möchte ich aber nun ändern :)

ich hoffe das ihr helfen könnt.

thx

mfg Locke


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 23.01.2006 um 14:35
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.01.06 18:31 
Dann gib doch beim Speichern den gewünschten Ordner an. Aber ohne etwas Quellcode, wird es schwierig dir zu helfen.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 23.01.06 18:42 
Probier mal ein Konstrukt wie ChangeFileExt(Application.ExeName, '.dat'); als Dateinamen für dein Autosave zu nehmen. Obwohl Luckie dir gleich bestimmt sagen wird, dass das im Programmverzeichnis gar nichts zu suchen hat, sondern besser im Anwendungsdaten-Verzeichnis des Users aufgehoben ist. ;-)

Problem ist einfach, dass das aktuelle Verzeichnis, was du wahrscheinlich mit getDir oder so ermittelst, durch einen Aufruf von den Open/SaveDialogs neu gesetzt wird.

_________________
We are, we were and will not be.
Locke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
Delphi 7 PE
BeitragVerfasst: Mo 23.01.06 19:23 
Also mein Autosave sieht wie folgt aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  f: textfile;
  s: string;

begin

 Assignfile(f, saveDialog1.FileName);
   Rewrite(f);
    s := richedit1.text;
      Write(f, s);
        CloseFile(f);

end;


Und bei den SaveDialog Einstellung siehts so aus:
DefaultExt: -
Filter: *.txt
InitialDir: -
Options: Alles ausser EnableSizing und HideReadOnly auf false

@Gausi:
Ich verstehe nicht so ganz was du meinst :?:

thx

mfg Locke

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
sternbach
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 31
Erhaltene Danke: 4



BeitragVerfasst: Mi 01.02.06 13:19 
Hi Locke,

wenn Du die Autosave-Datei im selben Verzeichnis ablegen willst, wo auch Deine *.exe liegt,
dann brauchst Du nur das Verzeichnis der Exe dem Filenamen Deiner Autosave-Datei vorstellen,
etwa so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  var AutoSavePath, AutoSaveFile, AutoSaveName     : String;

  begin 
    AutoSavePath := ExtractFilePath(Application.Exename);
    AutoSaveFile := 'AutoSave-' + ExtractFileName(saveDialog1.FileName);  // Hier könntest Du noch einen Teilstring einfügen
    
    AutoSaveName := AutoSavePath + AutoSaveFile;

    RichEdit1.Lines.SaveToFile(AutoSaveName);  // Vergiss die TextFileVariante, so ist das ganze smarter :)
  end;


Grüsse,
Peter
Locke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
Delphi 7 PE
BeitragVerfasst: Di 07.02.06 00:14 
Jo danke das funktioniert jetzt, das was in der textdatei steht is dann nicht so ganz korrekt .. in den 1. beiden zeilen wird folgendes angezeigt:

Zitat:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil MS Sans Serif;}{\f1\fnil\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\lang1031\f0\fs16


und vor jeder zeile wird folgendes angezeigt:

Zitat:
\par


Ich kenn mich mit Save Dialogen leider net so ganz besonders aus. Ich hoffe das ihr mir helfen koennt ;)

mfg Locke
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 07.02.06 00:23 
Da Du ein RichEdit nimmst, wird das Ganze im RTF-Format gespeichert. Du musst nur die Eigenschaft PlainText des RichEdit auf true setzen, dann wird nur der Text ohne die Formatierungsanweisungen gespeichert.
Locke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47

Win 2000
Delphi 7 PE
BeitragVerfasst: Di 07.02.06 00:40 
Dankeschoen an alle die geholfen haben ;)

Jetzt funktioniert alles :)

thx

mfg Locke