![]() |
Re: TStringList Max String länge
@Muetze
Delphi-Quellcode:
Weil ich zu meiner schande gestehen muss das ich nur die hälfte von dem verstehe was da steht.
Und warum nutzt du dann nicht die im Text angegebene Möglichkeit über UNC Angaben um wenigstens auf eine Pfadtiefe von 32767 Zeichen zu kommen?
Habe nie English gelernt das einzige was ich verstehe ist Denglish aus der Werbung und (Computer English) oder wie man es sonst nennen will. gruss Emil |
Re: TStringList Max String länge
Guten Morgen Emil,
eingentlich brauchst Du nur \\?\ vor die PfadStrings schreiben, denn dann weiß Windows dass ein langer Pfadname folgt.
Delphi-Quellcode:
Grüße
s:=extractFileExt('\\?\'+Aplugin);
Klaus |
Re: TStringList Max String länge
Zitat:
Danke für die Info.. Und dann verkürzt Window den Pfad ? gruss Emil |
Re: TStringList Max String länge
Zitat:
Nö, die ExctractFileExt ruft eine Win-Api auf und die kommt dann mit den langen Pfadnamen zurecht. Grüße Klaus |
Re: TStringList Max String länge
Zitat:
Delphi-Quellcode:
überflüssig.
try
tmpPath := GetShortName(Path); except if GetlastError = ERROR_INVALID_PARAMETER then tmpPath := Path; end; Aber ich würde in der Funktion GetShortName eine Exception werfen. |
Re: TStringList Max String länge
Zitat:
Warum wäre dieser Block dann ungültig ?. Edit: Grmm .. glaube du meinst lediglich den Block nicht die abfrage.
Delphi-Quellcode:
das wäre es dann.tmpPath := GetShortName(Path); if GetlastError = ERROR_INVALID_PARAMETER then tmpPath := Path; end Edit Zitat:
Hab ich noch nichts mit zu tun gehabt Wie geht das ? @Klaus01 Zitat:
Hab jetzt verschiedene möglichkeiten. Die frage ist was nun am besten verwenden. gruss Emil |
Re: TStringList Max String länge
So könnte es zum Beispiel gehen:
Delphi-Quellcode:
Ich habe eine eigene Exceptionklasse abgeleitet, weil ich keine passende, fertige Exception gefunden habe.
resourcestring
rsEInvalidParameter = 'Der Parameter %s ist ungültig'; type EInvalidParameter = class(Exception) public constructor CreateFmt(Parameter: string); end; { EInvalidParameter } constructor EInvalidParameter.CreateFmt(Parameter: string); begin inherited CreateFmt(rsEInvalidParameter, [Parameter]); end; procedure TForm1.RaiseDemoException; begin Raise EInvalidParameter.CreateFmt('Foobar'); end; procedure TForm1.Button1Click(Sender: TObject); begin try RaiseDemoException; except on E: EInvalidParameter do ShowMessage(E.Message); end; end; |
Re: TStringList Max String länge
@Luckie
Danke schön .. Dann kann ich die noch ausbauen für etwaige andere überprüfungen. gruss Emil |
Re: TStringList Max String länge
Richtig du kannst dir da dann weitere Exceptions für deine speziellen Fälle deklarieren. Habe ich bei meiner Adress-Datenbank auch gemacht. Da habe ich zum Beispiel die Exeptions:
Delphi-Quellcode:
type
EArgumentNull = class(Exception) public constructor CreateFmt(const MethodeName: String; const Parameter: String); end; EXMLError = class(Exception) public constructor CreateFmt(const MethodeName: String; const Msg: String; const Parameter: String); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz