AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kommandozeilen-Compiler dcc32

Ein Thema von Hansa · begonnen am 17. Mär 2004 · letzter Beitrag vom 25. Jun 2004
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 09:48
Hi,

weiß jemand, wie man dem Teil beibringt, selbst eine RES Datei anzulegen, sofern sie nicht da ist ? In der IDE kommt die Warnung "nicht vorhanden. Wird neu angelegt". Ich muß 30 Programme auf einmal compilieren. Die könnte ich zwar alle in die IDE laden, aber das ists wohl nicht. Zumal sich der Fall wahrscheinlich wiederholen wird.
Gruß
Hansa
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 11:08
Wenn Du Windows NT hast (erweiterte Syntax des FOR-Befehls), grep.exe im Pfad (Delphi6\Bin), in %Temp% eine default.res und die Untervezeichnisse der Projekte keine Leerezeichen enthalten (weil grep den Dateinamen ohne "" zurückgibt),
dann, aber auch nur dann...
Code:
FOR /F "usebackq" %I IN (`grep.exe -ldor- "{$R *.res}" *.dpr`) DO IF EXIST "%~dpnxI" IF NOT EXIST "%~dpnI.res" COPY "%Temp%\default.res" "%~dpnI.res"
In einer Batch muss jedes % in %% geändert werden.


Viel Spass

ps: warum shreibst Du nicht eben ein Tool dafür?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 13:04
Das ist ja schön und gut, aber was soll ich mit grep ? Ich weiß vorher schon, daß die *.res gebraucht wird. In der IDE wird die erzeugt, falls sie nicht da ist. dcc32 hat genügend Schalter, aber den für diesen Zweck finde ich nicht. Oder gibt es den gar nicht ? Könnte theoretisch sein. Dann erkläre mir bitte mal, was Deine Batch da genau machen soll. 8) Momentan habe ich Programm No. 18 in der IDE, damit die RES neu erzeugt wird, besser wäre es alles auf einen Schlag neu zu compilieren.
Gruß
Hansa
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 13:26
Ich wüßte nicht, dass einen dcc32-Schalter dafür gibt, sorry.

grep sucht in diesem Falle ab dem aktuellen Verzeichnis rekursiv nach allen *.dpr, welche den Text '{$R *.res}' enthalten und gibt die Dateinamen zurück, die wiederum mit der FOR-Schleife bearbeitet werden. Wenn der zusammengesetzte Dateiname (dpr) existiert (Paranoia wegen Leerzeichen in Unterverzeichnissen), wird nachgesehen, ob die *.res existiert - wenn nicht wird die %temp%\default.res mit dem richtigen Namen dorthin kopiert...
...kann man auch komplizierter machen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 13:34
Langsam weiß ich, was Du da vorhast. Aber eigentlich würde doch dann auch ein IF NOT EXIST {RES} blabla reichen, ohne grep ? Ich hasse diese Batch Syntax. Und Schalter gibt es keinen ? Ich finde ihn ja selbst nicht. Also ist das wohl wirklich nur in der IDE.
Gruß
Hansa
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 13:53
Zitat von Hansa:
Aber eigentlich würde doch dann auch ein IF NOT EXIST {RES} blabla reichen, ohne grep ?
Sicher reicht das (und ist kompatibel zur Win9x-Shell).
Ich bin von ca. fünftausend Projekten ausgegangen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 16:48
Zitat von Hansa:
...Ich muß 30 Programme auf einmal compilieren...
nix 5000, wer macht so was ? Also wirklich nichts mit Compilerschaltern ?
Gruß
Hansa
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#8

Re: Kommandozeilen-Compiler dcc32

  Alt 17. Mär 2004, 19:33
Zitat von Hansa:
Also wirklich nichts mit Compilerschaltern?
Ich denke nicht.

ps: Die Projekt-Verwaltung (Modules.TProject) ist in der CoreIDExx.bpl (Core Integrated Development Environment) implementiert. TProject erstellt (ResUtils.TResFile) mit dem 'MAINICON' der Hautpinstanz (IDE) die neue Ressourcendatei...
Da der Compiler wenig mit der CoreIDE zu schaffen hat, müsste es dort doppelt implementiert sein (wovon ich nicht ausgehe...).
ps2: wie wäre es mit delphi32.exe Project.dpr -m -ns
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Kommandozeilen-Compiler dcc32

  Alt 25. Jun 2004, 13:31
Zitat von NicoDE:
Wenn Du Windows NT hast (erweiterte Syntax des FOR-Befehls), grep.exe im Pfad (Delphi6\Bin), in %Temp% eine default.res und die Untervezeichnisse der Projekte keine Leerezeichen enthalten (weil grep den Dateinamen ohne "" zurückgibt),
dann, aber auch nur dann...
Code:
FOR /F "usebackq" %I IN (`grep.exe -ldor- "{$R *.res}" *.dpr`) DO IF EXIST "%~dpnxI" IF NOT EXIST "%~dpnI.res" COPY "%Temp%\default.res" "%~dpnI.res"
In einer Batch muss jedes % in %% geändert werden.
Einfach ein tokens=* einfügen, dann ist die komplette Zeile in %I
Es dürfen also Leerzeichen verwendet werden.

Code:
FOR /F "usebackq tokens=*" %I IN (`grep.exe -ldor- "{$R *.res}" *.dpr`) DO IF EXIST "%~dpnxI" IF NOT EXIST "%~dpnI.res" COPY "%Temp%\default.res" "%~dpnI.res"
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:21 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