AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Wie Parameter für IDE-Tools festlegen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Parameter für IDE-Tools festlegen?

Ein Thema von himitsu · begonnen am 28. Mai 2010 · letzter Beitrag vom 30. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#1

Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 14:08
Moin,

so wie es aussieht hab ich ein paar Problemchen damit.

siehe http://www.delphipraxis.net/internal...156421#1156421

Für mein Tool hab ich diesen Paremeter definiert:
Code:
IniFile=$PROJECT CreateIni=yes
Hierbei sollte Delphi/BDS/RAD nun das "$PROJECT" durch den Projektnamen (C:\irgendwas\myprojekt.proj) ersetzen.

Mit Delphi 2010 funktioniert dieses auch problemlos.
Unter Delphi 2007 und 2006 aber leider nicht.

In Delphi 7 geht es zwar auch nicht, aber dort gibt es auch kein Makro für den Projektnamen.
IniFile=$PATH($EXENAME)$NAMEONLY($EXENAME).dpr sieht doof aus, aber hier werde ich wohl einfach $EXENAME verwenden (mein Programm ersetzt ja eh die Dateiendung) und hoffen daß man die EXE im Projektverzeichnis erstellen läßt.


Nun hab ich mit dem Anhang als Tool rausgefunden, daß es Probleme gibt,
wenn die Parameter nicht alleine stehen (z.B. von Leerzeichen umgeben).

Hat da zufällig schon jemand einen Tipp, wie man dieses lösen kann?

[edit]
Code:
$NAME(IniFile=)$PROJECT
funktioniert zwar, allerdings wird da ein Leerzeichen zwischen = und den Projektnamen gelegt, so daß es dann 2 getrennte Parameter ergibt.
Angehängte Dateien
Dateityp: txt test.bat_367.txt (138 Bytes, 9x aufgerufen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 15:08
Wenn ich in den Tools Eigenschaften als Parameter nur "$PROJECT" angebe
erhale ich den korrekten Pfad.
Wenn ich noch irgendwas anderes drin hab bekomme ich den String "$PROJECT".

Oder hattest Du das schon?

EDIT:
Ich glaub ich habs:
geht nix: test= $PROJECT
geht : test= '$PROJECT'

Edit2:
Sorry. Vergiss es. Ist selbstverständlich nur wegen dem Abstand.
Vermutlich ist blackfin's Vorschlag die Auswertung umzudrehen am sinnvollsten?
Dies würde auch mit D2009/2010 funktionieren.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 15:10
Jupp, daß ist auch das Problem.

Nur "$PROJECT" geht, aber in "IniFile=$PROJECT CreateIni=yes" wird es nicht ersetzt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#4

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 15:19
Also.....es geht theoretisch, wenn du die Logik "umdrehst", also der Wert vor dem = steht und dahinter die Eigenschaft:

Parameter:
$PATH($PROJECT)=Inifile yes=CreateIni

Dann bekommst du im Programm als Parameter folgendes:
D:\Projekte\Testzeug\params\=Inifile
yes=CreateIni

Ansonsten ersetzt er dir das leider nicht...

Du müsstest halt dann die Parameter "andersrum" parsen, also Wert<>Eigenschaft

Ich weiss nicht, ob das was hilft?...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 15:49
Nja, es sieht halt etwas "ungewohnt" aus,
vorallem wenn man sich mal die Parameterdefinitionen anderer Programme ansieht.

Drum wollte ich die Definitionen eigentlich nicht ändern
und hab gehofft man könne Delphi dennoch irgendwie zum Ersetzen bewegen.

z.B. wurde auch das probiert,
(IniFile=)$PROJECT CreateIni=yes
IniFile=($PROJECT) CreateIni=yes
wobei hier alles zwischen ( und ) einfach nur weggelassen wird.



Aktuell hab ich aber dennoch erstmal meinen Parser (und den Reg-Editor) etwas umgebaut,
womit nun auch Nachfolgendes geht.

Allerdings muß man ja auch aufpassen, daß die Definitionen relativ eindeutig sind, um Fehlinterpretationen zu vermeiden.
Code:
IniFile=$PROJECT CreateIni=yes
==IniFile $PROJECT CreateIni=yes
==IniFile $PROJECT ==CreateIni yes
Delphi-Quellcode:
Function ReadParam(Name: String; toLower: Boolean = False): String;
  Var i: Integer;

  Begin
    Result := '';
    Name := LowerCase(Name) + '=';
    For i := ParamCount downto 1 do
      If Pos(Name, Trim(LowerCase(ParamStr(i)))) <> 0 Then Begin
        Result := Trim(Copy(ParamStr(i), Length(Name) + 1));
        Break;
      End;
    Name := '==' + LowerCase(Name);
    If Result = 'Then
      For i := ParamCount - 1 downto 1 do
        If (Name = LowerCase(ParamStr(i))) and ((i <= 1)
            or (Copy(ParamStr(i - 1), 1, 2) <> '==')) Then Begin
          Result := Trim(ParamStr(i + 1));
          Break;
        End;
    If toLower Then Result := AnsiLowerCase(Result);
  End;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 16:45
Langsam werd ich richtig wuschig.
Jetzt läuft das mit den Parametern, aber ein anderes Problem tut sich auf.

Anfangs wurde der Pfad "automatisch" von Delphi in " gesetzt, wenn Leerzeichen enthalten waren
Aber nun passiert das urplötzlich nicht mehr.

Und manuell kann man das nicht machen, da es dann heißt, das Makro sei unbekannt.


Das kann doch alles nicht Wahr sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#7

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 19:25
Heieiei...das ist echt bugverseucht...

$EXENAME macht er mit Quotes...$PROJECT nicht...

Ich habs bis jetzt auch nicht geschafft....das ist doch zum verrückt werden...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 20:03
Zitat von blackfin:
$EXENAME macht er mit Quotes...$PROJECT nicht...
nee, anscheinend macht er jetzt garnix mehr mit Quotes, aber vor 'ner Weile ging es noch ... jedenfalls wurde irgendwas mal mit Quotes übergeben.

"$MAKRO" übersetze er nicht ... anscheinend wird " als Nameszeichen angesehn, weßhalb da wohl auch gemekert wird, daß es das Makro dann nicht gäbe.

Anscheinend hab ich jetzt was, aber ein paar weitere Test wollte ich dennoch erstmal machen.

[edit]
grade nochmal getestet

$EXENAME und $HOSTNAME werden mit " und $PROJECT wird ohne " übergeben.

Aber ich brauche ja nunmal gerade das Projekt.

[edit]
Code:
1:   CreateIni=yes IniFile="$PROJECT()"
2:   CreateIni=yes ==IniFile "$PROJECT()"
3:   CreateIni=yes ==IniFile ""$PROJECT()
Die 1 funktioniert in D2010 halbwegs, denn ab der () wird alles einfach weggelassen,
darum auch die getauschten Parameter (zum Glück hab ich inzwischen keine fixen Parameterpositionen mehr).
Und zum Glück macht es dem Delphi-Referenz durchsuchenParamStr nix aus, wenn dort mal das schließende " fehlt.

In D2006 geht die 1 ja nicht, aber dafür geht die Variante 2 (zumindestens mit $EXENAME ginge es),
aber mit $PROJECT ... nja, auch hier wird ab dem () alles weggelassen, allerdings meckert hier die IDE darüber, daß es kein schließendes " gäbe (ja nee, is klar )
Zitat:
---------------------------
Fehler
---------------------------
Das rechte Anführungszeichen fehlt
---------------------------
OK
---------------------------
also dachte ich "och, probierste es mal mit der 3 und siehe da, kein gemecker, allerdings fehlt hier gleich mal alles nach dem zweiten " .
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#9

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 28. Mai 2010, 23:24
Murmel murmel....

.....wäre es vielleicht eine Idee, das Ding als Expert über die OTA umzuschreiben?
Dann kannste doch eigentlich so ziemlich alles aus der IDE ziehen, ohne umständlich über Command line Parameter gehen zu müssen.
Und...wäre doch auch nett, direkt die "Himitsu Experts" neben den GExperts zu haben
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

Re: Wie Parameter für IDE-Tools festlegen?

  Alt 29. Mai 2010, 09:35
Nja, im Grunde benötige ich ja "nur" den Dateinamen der Projektdatei
und dafür währe "eigentlich" kein OTA nötig.

Nja, in Zukunft ist zwar für was anderes was mit OTA geplant und wenn ich mich dann mit diesem ganzen OTA-Zeugs halbwegs auskennt .... vielleicht.

Hatte gestern keine Zeit mehr zum Testen und muß auch gleich erstmal 'nen Weilchen weg,
aber aus gegebenem Anlaß geht ich nun erstmal über eine zweite Anwendung, welche die/den "einen" übergebenen Parameter analysiert, beim Fehlen der " die vielen Parameter wieder zu Einem zusammensetzt, alles um das Parameter-Prefix und den zweiten Parameter erweitert und das dann an meinen MC weiterleitet.
(nach hoffentlich erfolgreichen Tests dann mehr dazu)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 23:30 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