Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe? (https://www.delphipraxis.net/212451-grep-exe-unter-windows-findet-nichts-%96-wer-haette-beispiel-aufrufe.html)

Andreas13 12. Feb 2023 14:24

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Vielen Dank Delphi.Narium für Deine ausführlichen Erläuterungen! :thumb: :-D
Zitat:

... und hierfür jetzt für alle Konsolenprogramme der Welt, die für Unix und Windows kompiliert werden können, zu verlangen, dass die einkompilierten Hilfen jeweils angepasst werden, halte ich für übertrieben ;-)
Als "alter" Mensch habe ich möglicherweise keine zeitgemäßen Erwartungen mehr. Mich würde es trotzdem ärgern, wenn ich für mein Elektro-Fahrzeug die Bedienungsanleitung eines Dieselfahrzeuges bekomme...:-D
Grüße, Andreas

himitsu 12. Feb 2023 15:12

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Es ist halt ein Unterschied, ob man Dinge für ein anderes System anpasst+bereitstellt, oder ob man es einfach nur doof dafür kompiliert.

z.B. GIT, da das Paging in der Console ist einfach nur krank.
der verhält sich garnicht so, wie man es im Windows kennt ... der Dreck hört nichtmal auf Ctrl+C und die einzige Lösung ist die Console zu schließen, denn alle möglichen Tasten der Tastatur durchzuprobieren um den Mist zuzubekommen, obwohl die Console im Windows von selbst zurückscrollen kann und man diesen Mist also garnicht braucht.

per se ist es im Linux oft (nicht immer) schon bissl konsequenter.
- für einbuchstabige Kurzoptionen, -- für die Langversion und -abc ist somit kein "abc" sondern -a, -b und -c


Gut, Konsolenprogramme im Windows haben gern eine GUI und oft nicht soooooo viele Optionen, als dass man zwischen Groß- und Kleinschreibung unterscheiden muß und sich die Masse eh nie merken kann.
gutes Beispiel sind die Übermasse an Optionen im GIT.

Delphi.Narium 12. Feb 2023 16:14

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Zitat:

Zitat von Andreas13 (Beitrag 1518610)
Vielen Dank Delphi.Narium für Deine ausführlichen Erläuterungen! :thumb: :-D
Zitat:

... und hierfür jetzt für alle Konsolenprogramme der Welt, die für Unix und Windows kompiliert werden können, zu verlangen, dass die einkompilierten Hilfen jeweils angepasst werden, halte ich für übertrieben ;-)
Als "alter" Mensch habe ich möglicherweise keine zeitgemäßen Erwartungen mehr. Mich würde es trotzdem ärgern, wenn ich für mein Elektro-Fahrzeug die Bedienungsanleitung eines Dieselfahrzeuges bekomme...:-D
Grüße, Andreas

Alt bin ich auch, sonst könnt ich mich nicht (mehr oder weniger gut) mit DOS auskennen ;-)

Die Bedienungsanleitung von Grep für Unix stimmt mit der Bedienungsanleitung für Windows überein, einzig bei der Art, wie die Kommandozeilenoptionen anzugeben sind, gibt es betriebssystemseitige Unterschiede. Strenggenommen liegen die Unterschiede außerhalb des Programmes Grep, es (bzw. die die Software Entwickelnden) hat (haben) auf diese Unterschiede keinen Einfluß. Die Kommandozeile ist Teil des Betriebssystemes und dort wird u. a. durch " bzw. ' gesteuert, wie das Betriebssystem die Eingaben auf der Kommandozeile an das Programm weiterreicht.

Der Vergleich
Zitat:

wenn ich für mein Elektro-Fahrzeug die Bedienungsanleitung eines Dieselfahrzeuges bekomme
hinkt hier ein bisserl.

Es wäre eher so, als würde man erwarten, dass in der Bedienungsanleitung für einen VW, den man in England kauft, explizit mit drinstehen müsste, dass man mit diesem Auto aus Deutschland in England links zu fahren hat ;-)

Delphi-Quellcode:
begin
  // Kommandozeile:
  // grep -i 'TBrent' KonkreterDateiName.dpr
  // unter Windows
  WriteLn(ParamCount); // = 3
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // 'TBrent'
  WriteLn(ParamStr(3)); // KonkreterDateiName.dpr
  // unter Unix
  WriteLn(ParamCount); // = 3
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // TBrent
  WriteLn(ParamStr(3)); // KonkreterDateiName.dpr

  // Kommandozeile:
  // grep -i "TBrent" KonkreterDateiName.dpr
  // unter Windows
  WriteLn(ParamCount); // = 3
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // TBrent
  WriteLn(ParamStr(3)); // KonkreterDateiName.dpr
  // unter Unix
  WriteLn(ParamCount); // = 3
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // "TBrent"
  WriteLn(ParamStr(3)); // KonkreterDateiName.dpr

  // Kommandozeile:
  // grep -i 'dies und das ' KonkreterDateiName.dpr
  // unter Windows
  WriteLn(ParamCount); // = 5
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // 'dies
  WriteLn(ParamStr(3)); // und
  WriteLn(ParamStr(4)); // das'
  WriteLn(ParamStr(5)); // KonkreterDateiName.dpr
  // unter Unix
  WriteLn(ParamCount); // = 3
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // dies und das
  WriteLn(ParamStr(3)); // KonkreterDateiName.dpr

  // Kommandozeile:
  // grep -i "dies und das" KonkreterDateiName.dpr
  // unter Windows
  WriteLn(ParamCount); // = 3
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // dies und das
  WriteLn(ParamStr(3)); // KonkreterDateiName.dpr
  // unter Unix
  WriteLn(ParamCount); // = 5
  WriteLn(ParamStr(1)); // -i
  WriteLn(ParamStr(2)); // "dies
  WriteLn(ParamStr(3)); // und
  WriteLn(ParamStr(4)); // das"
  WriteLn(ParamStr(5)); // KonkreterDateiName.dpr
end.

himitsu 12. Feb 2023 20:18

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Die Win32-API selber hat leider garkeine Behandung für Parameter und gibt ausschließlich den kompletten String zurück.
MSDN-Library durchsuchenGetCommandLine
Das machen die Programmiersprachen selber und da ist/war Delphi nicht wirklich hilfreich, bei der Behandlung von "Optionen".
Parameter auflisten und durchgehn mußte man ja selber und nur das " wird hier zumindestens beachtet, da das so schon von der Console (CMD) eine Vorgabe für Programmaufrufe war.

.NET und C# haben da schon mehr
MSDN-Library durchsuchenGetCommandLineArgs

jaenicke 12. Feb 2023 20:27

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Zitat:

Zitat von himitsu (Beitrag 1518625)
Die Win32-API selber hat leider garkeine Behandung für Parameter und gibt ausschließlich den kompletten String zurück.
MSDN-Library durchsuchenGetCommandLine

Wie kommst du denn dadrauf?
CommandLineToArgv parst sehr wohl die Kommandozeile und gibt die einzelnen Parameter zurück.

himitsu 12. Feb 2023 20:34

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Stell dir mal vor die Hilfe würde solche Funktionen untereinander verlinken. :stupid:

Ohhh, gibt es erst seit Windows 2000 ... zu spät ... das bekommt Delphi in so kurzer Zeit doch nicht mit und benutzt weiterhin sein Eigenes, noch aus TurboPascal-Zeiten.



OK, aber dennoch mußt du dabei / - -- und sonstwas selbst behandeln
und das kann dann jeder nach Gutdünken sonstwie machen.

Bzw. man muß es entweder selber machen, so wie man grade denkt es wäre geil,
oder sich eine Komponente suchen, wo "dieser" Entwickler denkt es wäre geil so.

Andreas13 12. Feb 2023 21:42

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
Danke Euch allen für Eure wertvollen Tipps & Erläuterungen: Ihr habt mir sehr geholfen! :thumb: :angel:

Viele Grüße
Andreas

freimatz 13. Feb 2023 09:23

AW: grep.exe unter Windows findet NICHTS – Wer hätte Beispiel-Aufrufe?
 
BTW: für neue Consolen-Projekte verwende ich immer VSoft.CommandLine


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.
Seite 2 von 2     12   

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