AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Merkwürdiger Fehler, TStringlist.SaveToFile
Thema durchsuchen
Ansicht
Themen-Optionen

Merkwürdiger Fehler, TStringlist.SaveToFile

Ein Thema von t2000 · begonnen am 20. Okt 2020 · letzter Beitrag vom 21. Okt 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#1

Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 10:37
Hallo zusammen,

ich habe seit heute einen ganz merkwürdigen Fehler.
Ein TStringlist.SaveToFile funktioniert nicht mehr.

Delphi-Quellcode:
var
  MeineListe: TStringlist;
begin
  MeineListe := TStringlist.Create;
  MeineListe.Add('xxx');
  MeineListe.SaveToFile( 'D:\temp\TSE\Bu2006839.input.tse');
Die Methode SaveToFile erzeugt den Fehler in der Unit System.SysUtils.

function FileCreate(const FileName: string; Mode: LongWord; Rights: Integer): THandle;

zeile
Result := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
ShareMode[(Mode and $F0) shr 4], nil, Exclusive[(Mode and $0004) shr 2], FILE_ATTRIBUTE_NORMAL, 0);

Die Meldung lautet:

"D:\entwXE\Sopha\bin\ D:\temp\TSE\Bu2006839.input.tse" kann nicht erstellt werden. Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Wobei der erste Teile der Pfad ist, in dem die exe-Datei liegt und der zweite Teil die eigentliche Datei die geschrieben werden soll.

Wer oder Wo ändert den Dateinamen??

Hier ist noch Delphi 10.3.3 mit Windows 10 Enterprise (regelmäßige Updates)

Letzte Woche ging noch alles.

Hat jemand einb ähnliches Verhalten bemerkt? Wondows Update vielleicht?

Viele Grüße
Thomas
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 10:46
Hallo,
MeineListe.SaveToFile( 'D:\temp\TSE\Bu2006839.input.tse'); Ist das wirklich die korrekte Zeile?
Oder eher

MeineListe.SaveToFile('_D:\temp\TSE\Bu2006839.inpu t.tse');

Wobei _ ein Leerzeichen ist.

Existiert D:\Temp, zur Not mal das Verzeichnis löschen und neu anlegen.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#3

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 10:48
Moin...
Zitat:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
...hatte ich heute morgen auch.

Bei mir war es ein nicht verbundes Laufwerk.

PS: StringList funktioniert immer.
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#4

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 10:50
Miniaturansicht angehängter Grafiken
screenshot-2020-10-20-104824.png  
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#5

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 10:56
Es sind keine Leerzeichen oder falsche Laufwerke drin.

Ich werde nun mal ein kleines Testprogramm schreiben. Das Original ist sehr groß.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 10:56
Testprogramm steht doch schon in Post #1
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 11:07
Hallo,
die "exception message" ist unvollständig.

Sieht aus wie ein kaputter String, der dazu führt,
dass Delphi einen relativen Pfad annimmt.

bin\ D:

Und ich sehe trotzdem ein Leerzeichen...
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#8

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 11:14
Das ist die Meldung(Exception) die im MadExcept steht.

Der Dateiname ist: 'D:\name usw.'. Die Fehlermeldung lautet: "D:\bin D:\name usw."
"D:\bin" ist der Pfad der exe-Datei
dann ein Leerzeichen
dann der Dateiname, den ich übergebe


-----------------

Das Testprogramm läuft. Mit den identischen Dateiname und Pfaden.
Die Ursache muss woanders liegen.

Trotzdem, Es wird ein CreateFile mit korrektem Parameter aufgerufen und aus der Windows API kommt der Fehler
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 11:35
Vielleicht vor Deinem SaveTo ein SetCurrentDir oder ChDir durchführen? (Wobei es bei meinen Versuchen Wurst ist...)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#10

AW: Merkwürdiger Fehler, TStringlist.SaveToFile

  Alt 20. Okt 2020, 12:43
Gefunden. Es war tatsächlich ein Leerzeichen schuld.
Die Pfadangebe wurde aus der Datenbank gelesen. Anschließend mit "IncludeTrailingPathDelimiter" erweitert. Diese Funktion kontrolliert nicht, ob es ein gültiger Pfad ist, sondern hängt einfach ein Backslash dran.
Bei meinen ersten Tests ahbe ich natürlich immer den Pfad genutzt. Fragt mich nicht wieso. Er sah ja optisch richtig aus.
Hätte die Exception nicht so eine blöde Meldung gegeben, hätte ich wahrscheinlich sofort gesehen. Aber mit dieser Meldung habe ich an den falschen Stellen gesucht.

Warum wird dabei der aktuelle Ordner mit angegeben? In der Meldung habe ich das Leerzeichen natürlich gesehen. Es aber nicht dem Pfad zugeschrieben.

Vielleicht war es auch einfach nur die morgendliche Blindheit.
Danke trotzdem.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:41 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