Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Parameter zu lang? (https://www.delphipraxis.net/15418-parameter-zu-lang.html)

MasterC 28. Jan 2004 14:07


Parameter zu lang?
 
Hi, ich hab ein Problem mit der Länge der Parameter, hier erst mal der Code:

Code:
SetEnvironmentVariable(PChar('Blitzpath'),PChar(pfad));
file_name := dateipfad[tabber1.ActivePage.tag];
If file_name <> '' then begin
synedit1.Lines.SaveToFile(file_name);
end;
If file_name = '' then begin
saveexecute(sender);
file_name := dateipfad[tabber1.ActivePage.tag];
end;
Application.ProcessMessages;
ShellExecute(Handle, 'open', PChar('blitzcc.exe'),PChar('-d '+file_name), pchar(pfad+'\bin'),sw_ShowNormal);
Das Problem: Wenn ich kurze Dateinamen compiliere (z.b.: c:\Temp), klappt das wunderbar. Bei Dateinamen, die länger als ca. 15 Zeichen sind geht das nicht. (Blitz Compiler meldet: File not found). Alle scheint an den Parametern zu hängen, erst da fängt er an den falschen Dateinamen auszuspucken.

Ich bastle gerade an BlitzEdit (www.blitzedit.de.vu) für die Programmiersprache Blitz Basic (www.blitzbasic.de).

Phoenix 28. Jan 2004 14:18

Re: Parameter zu lang?
 
Ich würde Pfade generell nie fest im Quelltext verdrahten.

Versuch doch mal, Konstanten zu definieren und mit diesen zu arbeiten...

MasterC 28. Jan 2004 14:22

Re: Parameter zu lang?
 
Mit Konstanten zu arbeiten wäre ungünstig und behebt auch nicht mein Problem.

Phoenix 28. Jan 2004 14:31

Re: Parameter zu lang?
 
Zitat:

Zitat von ganxta
Mit Konstanten zu arbeiten wäre ungünstig

Das beweist Du mir jetzt aber mal, warum es ungünstig wäre, Konstanten zu definieren. Jeder findet eine Konstante die am Anfang der Unit deklariert ist schneller und kann diese ggf. ändern als wenn er erst im Quelltext jedes Vorkommen dieses Wertes suchen muss.

Edit: Hast Du ggf. Leerzeichen im Pfad? /edit

MasterC 28. Jan 2004 14:32

Re: Parameter zu lang?
 
Ok du hast recht...Was hat das mit meinem Problem zu tun?

d3g 28. Jan 2004 14:53

Re: Parameter zu lang?
 
Code:
$ dir /b
dies ist ein file
dies ist ein zweiter

$ dir /b dies ist ein file
Datei nicht gefunden
Was du willst, ist folgendes:
Code:
$ dir /b "dies ist ein file"

MasterC 28. Jan 2004 15:21

Re: Parameter zu lang?
 
Ich verstehe nicht ganz was du meinst...

Phoenix 28. Jan 2004 15:23

Re: Parameter zu lang?
 
Wenn Du ein leerzeichen in Deinem Pfad und/oder Dateinamen hast, dann musst Du den Pfad inklusive Dateinamen in Hochkommas setzen.

Zitat:

D:\Dies_ist_ein\ungueltiger Dateiname.txt
"D:\Dies_ist_ein\gueltiger Dateiname.txt"

MasterC 28. Jan 2004 17:12

Re: Parameter zu lang?
 
Ah jetzt versteh ich, mal gucken ob das mein Problem löst.


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