Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Memo Inhalt als Textfile speichern (https://www.delphipraxis.net/177967-memo-inhalt-als-textfile-speichern.html)

Alterauge 8. Dez 2013 18:34


Memo Inhalt als Textfile speichern
 
Hallo,

möchte gerne ein DBMemo als TextFile abspeichern.
Im gleichem Odner, wo sich die exe befindet! Ein Unterordner wäre auch toll.

Edit6.Text ("hier befindet sich immer eine neue ID-Nr")

Delphi-Quellcode:
DBMemo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+(Edit6.Text)+ '.asc'); // so müsste es doch richtig sein !!!
:?

jaenicke 8. Dez 2013 18:50

AW: Memo Inhalt als Textfile speichern
 
Forderst du denn auch Administratorrechte (z.B. beim Start der Anwendung) an, damit du dort überhaupt Schreibrechte hast?
http://www.entwickler-ecke.de/viewto...548600&view=dl

Ansonsten sieht das so schon richtig aus. Was passiert denn?
Lass dir doch einfach mal den zusammengesetzten Dateinamen mit ShowMessage ausgeben, dann siehst du ja, ob der passt.

himitsu 8. Dez 2013 18:53

AW: Memo Inhalt als Textfile speichern
 
Zitat:

Zitat von jaenicke (Beitrag 1239008)
Was passiert denn?

Meine Frage war eher:

Was ist denn deine Frage?

Alterauge 8. Dez 2013 19:05

AW: Memo Inhalt als Textfile speichern
 
hallo,

also es passiert nix!

es wird nichts gespeichert, aber eine Fehlermeldung gibt es auch nicht!??

:shock::?

jaenicke 8. Dez 2013 19:13

AW: Memo Inhalt als Textfile speichern
 
Wo liegt denn dein Programm? Wenn das z.B. unter "c:\Program Files (x86)" liegt und du es nicht mit Adminrechten startest, schaust du dann auch an der richtigen Stelle nach der Datei? Sprich unter:
Code:
C:\Users\[Benutzername]\AppData\Local\VirtualStore\Program Files (x86)
// EDIT:
Ach ja, und mit dem Process Monitor siehst du genau was dein Programm macht, sprich ob es die Datei speichert.

sx2008 8. Dez 2013 22:40

AW: Memo Inhalt als Textfile speichern
 
Wenn du eine Datei speichern willst und es Probleme gibt dann verwendet man immer eine Stringvariable mit dem Dateinamen.
Falsch
Delphi-Quellcode:
DBMemo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+(Edit6.Text)+ '.asc');


Richtig
Delphi-Quellcode:
var
  filename :string;
begin
  filename := ExtractFilePath(Application.ExeName)+Edit6.Text+ '.asc';
  ShowMessageFmt("speichere Datei %s", [filename]); // Ausgabe zu Debugzwecken
  DBMemo1.Lines.SaveToFile(filename);
Diese supereinfache Technik sollte man sich für immer merken, dann braucht man auch nicht im Forum fragen sondern die Standardprobleme selber lösen!!

Da fehlt wahrscheinlich ein Backslash in deinem Dateinamen.

jaenicke 8. Dez 2013 22:46

AW: Memo Inhalt als Textfile speichern
 
Zitat:

Zitat von sx2008 (Beitrag 1239040)
Da fehlt wahrscheinlich ein Backslash in deinem Dateinamen.

Nein, denn ein Path ist immer mit Trennzeichen am Ende, Dir ohne. In diesem Fall ist das Trennzeichen schon da.

Ich vermute eher, dass die Virtualisierung zuschlägt (siehe oben) oder ungültige Zeichen im Dateinamen sind (mit ShowMessage ja zu sehen).
Der Process Monitor zeigt in jedem Fall was passiert.

himitsu 9. Dez 2013 00:46

AW: Memo Inhalt als Textfile speichern
 
Zitat:

Zitat von sx2008 (Beitrag 1239040)
Delphi-Quellcode:
// Ausgabe zu Debugzwecken

Ich hab da eine ganz verrückte Idee: Man könnte auch mit dem Debugger debuggen.

Ungültige Zeichen müssten dann in Edit6 drin sein, aber da würde SaveToFile mit einer Exception reagieren.

Am Wahrscheinlichten ist hier wirklich der VirtualStore.



Jupp, bei ExtractFilePath hat "immer" einen PathDelemiter am Ende. (solange es im Input-Verzeichnisstring Einen gibt)

ExtractFileDir nicht, bzw. ExcludePathDelimiter nicht, wobei das seit vielen Jahren kaputt ist, denn am RootDrive müsste es den Path-Delemiter dran lassen, was es nicht macht, denn C: ist nicht das Root-Verzeichnis, sondern C:\.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 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