Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TStringList.SaveToFile fails (https://www.delphipraxis.net/205356-tstringlist-savetofile-fails.html)

haentschman 1. Sep 2020 06:49

TStringList.SaveToFile fails
 
Hallöle...8-)

Ich habe mal was ungewöhnliches:

Ein Tool von mir speichert eine TStringList mit SaveToFile in einen Order ab. Bei einem "Kunden" wird die Liste (Datei) zwar angelegt aber ist leer. :shock: Wenn ich aber den Ausgabeordner, über die Optionen des Tools, ändere, dann wird alles gespeichert. :shock: ...nur in diesem Ordner nicht. :cry:

Schreibrechte sind vorhanden, sonst würde auch die Datei nicht angelegt.

Habt ihr sowas schon gesehen?

:wink:

Bernhard Geyer 1. Sep 2020 06:54

AW: TStringList.SaveToFile fails
 
Zitat:

Zitat von haentschman (Beitrag 1472707)
Hallöle...8-)

Ich habe mal was ungewöhnliches:

Ein Tool von mir speichert eine TStringList mit SaveToFile in einen Order ab. Bei einem "Kunden" wird die Liste (Datei) zwar angelegt aber ist leer. :shock: Wenn ich aber den Ausgabeordner, über die Optionen des Tools, ändere, dann wird alles gespeichert. :shock: ...nur in diesem Ordner nicht. :cry:

Schreibrechte sind vorhanden, sonst würde auch die Datei nicht angelegt.

Habt ihr sowas schon gesehen?

:wink:

Welche Dateiextension hat die Datei?
Haben bei einem Kunden die Einstellung das keine .dat-Dateien speicherbar ist.
Evtl. hat er die Einstellung das diese nicht geändert werden dürfen, so das ein Anlegen und späteres (in zweiter Schreibaktion) füllen der Datei verhindert wird.

haentschman 1. Sep 2020 06:56

AW: TStringList.SaveToFile fails
 
Zitat:

Welche Dateiextension hat die Datei?
Blubb.rc

Incocnito 1. Sep 2020 07:02

AW: TStringList.SaveToFile fails
 
RC sind ja Ressourcen-Dateien. Klingt extrem danach, dass da ein AntiViren-Programm rein grätscht. 🤔
Speicherst du vielleicht lokal und dieser Ordner ist im Netzwerk freigegeben?
Also C:\Temp\blub.rc geht, weil der Ordner nicht freigegeben ist /
C:\Freigabe\blub.rc geht nicht, weil der Ordner freigegeben ist und
entweder ein anderer Rechner da Blödsinn treibt, oder das lokale AntiViren-Programm nur
bei Freigaben spezielle Prüfungen durchführt.
... Nur so als Ansatz. Gehabt/Gehört, habe ich das auch noch nie.

Beschwert sich die StringList denn beim Speichern?

Kannst du mit anderen Mitteln speichern? (Was das ganze allerdings eher noch skuriler machen würde! 😅)

haentschman 1. Sep 2020 07:07

AW: TStringList.SaveToFile fails
 
Zitat:

Beschwert sich die StringList denn beim Speichern?
...nein, nur die Datei hat keine Zeilen.
Zitat:

Speicherst du vielleicht lokal und dieser Ordner ist im Netzwerk freigegeben?
Meines Wissens liegt das Programm in C:\Programme\Blubb und soll die .rc in D:\Blubb speichern. Beide Laufwerke sind lokal. Wenn ich aber in D:\Blubbchen speichere, ist alles normal. (In diesem Falle 200 Zeilen)

Nachtrag:
D:\Blubb ist ein Ordner der aus dem GIT Repository ausgecheckt wurde...Das GIT merkt aber das die Datei geändert wurde. Schreibvorgänge finden statt. Hat aber 0 Bytes.

Bbommel 1. Sep 2020 08:34

AW: TStringList.SaveToFile fails
 
Ich hatte den Effekt nur mal "andersrum", das heißt, ein LoadFromFile einer StringList lieferte eine leere Liste, obwohl die Datei lesbar war und auch in einem Editor problemlos betrachtet werden konnte. "strList.LoadFromFile" lief aber ohne zu murren durch. Erst als ich explizit ein
Delphi-Quellcode:
erorrCode:=GetLastError;
hinter das LoadFromFile geschrieben habe, bekam ich durch den ErrorCode, den ich dann hatte, einen Hinweis.

In meinem Fall war es ein Problem mit dem Lesen von Größeren Dateien über ein Netzlaufwerk, was bei dir wohl was anderes sein dürfte. Ähnlich ist aber: die StringList "verschluckt" manchmal Fehlermeldungen. Vielleicht kommst du bei dir mit einem "GetLastError" ja auch weiter.

Dalai 1. Sep 2020 09:05

AW: TStringList.SaveToFile fails
 
Kontrollierter Verzeichniszugriff aka Controlled Folder Access im Windows Defender oder etwas ähnliches im (3rd party) Virenscanner aktiv? Wir hatten kürzlich einen ähnlichen Fall, wo im 3rd party Virenscanner ein Modul installiert wurde (was vorher nicht da war) und das Speichern einer Datei im Excel unter neuem Namen zwar die Datei anlegte aber nicht mit Daten füllte (angelegte Datei hatte 0 Byte Größe). Ein Überschreiben der Datei war ebenso wenig erfolgreich. Nach Abschalten des Ransomware-Moduls ging alles wie es sollte.

Grüße
Dalai

haentschman 1. Sep 2020 09:33

AW: TStringList.SaveToFile fails
 
Zitat:

Kontrollierter Verzeichniszugriff aka Controlled Folder Access im Windows Defender
...das würde aber für den ganzen Computer gelten. Die Datei wird in einem anderen Ordner geschrieben. :?

Delphi.Narium 1. Sep 2020 09:37

AW: TStringList.SaveToFile fails
 
Zitat:

Zitat von haentschman
...das würde aber für den ganzen Computer gelten.

Wieso?

Kann meinen Virenscanner so konfigurieren, dass er in bestimmten Verzeichnissen sehr restriktiv aggiert und andere komplett auslässt und beliebige Kombinationen dazwischen. Je Laufwerk, je Verzeichnis, je Dateityp, ...

HeZa 1. Sep 2020 09:54

AW: TStringList.SaveToFile fails
 
Zitat:

Zitat von haentschman (Beitrag 1472707)
Ein Tool von mir speichert eine TStringList mit SaveToFile in einen Order ab. Bei einem "Kunden" wird die Liste (Datei) zwar angelegt aber ist leer. :shock:

Nur um dem Thema eine weitere Vermutung hinzuzufügen: Ich hatte vor Jahren mal ein Problem mit SaveToFile und leeren Dateien. Ursache war der Aufruf SaveToFile aus einem Thread heraus. Bei uns konnten wir das Problem nicht nachstellen.

Aber wahrscheinlich ist bei dir gar kein Threading im Spiel oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.
Seite 1 von 2  1 2      

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