![]() |
Delphi-Version: 7
/? Hilfe in der Konsole
Ich möchte in mein Programm eine Hilfe einbauen (Konsole) und zwar mit dem befehl '/?'. Das ganze würde ich über eine IF anweisung lösen. Jetzt mein Problem Was muss ich schreiben das er die Hilfe bei dem Befehl öffnet und nur dann?
|
AW: /? Hilfe in der Konsole
Delphi-Quellcode:
Das solltest du inzwischen aber auch schon selber draufhaben! :shock:
if DeinEingabeText = '/?' then
begin OeffneHilfe; end; |
AW: /? Hilfe in der Konsole
Ja ich weiß.. manchmal vergess ich so etwas. Ist bei mir noch nicht drin im Kopf alles ^^.
Eine Frage noch bei "deinEingabeText" was kann ich da bei der Konsole nehmen? Writeln? |
AW: /? Hilfe in der Konsole
Zitat:
Welche Tutorials hast du denn bisher angeschaut, um dich mit dem Thema Delphi und Konsole bekannt zu machen? |
AW: /? Hilfe in der Konsole
Wenn du schon die Startparameter auswerten möchtest, dann mach es gleich richtig:
Delphi-Quellcode:
project Foo; procedure ParseCommandLine; var i: Integer; begin for i := 1 to ParamCount do begin if ParamStr(i) = '/?' then begin WriteLn('Hilfe'); ReadLn; end; end; end; begin ParseCommandLine; ... end. |
AW: /? Hilfe in der Konsole
Delphi-Quellcode:
Das ist mein Quellcode. Es kommt der Fehler "inkompatible Typen"
readln;
eingabe := '/?'; if Readln(eingabe)= true then begin Writeln('#0 - Kein Fehler aufgetreten'); Writeln('#1 - Falscher Parameter'); Writeln('#2 - PDF bereits vorhanden'); Writeln('#3 - Konvertierung fehlgeschlagen'); readln; end; Ist es vom Ansatz richtig? |
AW: /? Hilfe in der Konsole
Es gibt auch noch etwas Einfacheres zum Abprüfen:
![]() Ob es das aber schon unter Delphi 7 gab, kann ich nicht sagen ... |
AW: /? Hilfe in der Konsole
.. so wie ich das verstanden habe will der TE /? nicht als Parameter übergeben - sondern im Programm eingeben.
Delphi-Quellcode:
->
if Readln(eingabe)= true then
Delphi-Quellcode:
Grüße
eingabe := readln;
if eingabe = '/?' then Klaus |
AW: /? Hilfe in der Konsole
bloß nicht!
Delphi-Quellcode:
funktioniert zwar, aber ob es das ist was gewollt ist?
readln(eingabe);
if eingabe = '/?' then Gruß K-H |
AW: /? Hilfe in der Konsole
Zitat:
Hast Du ein Konsolenprogramm mit "Menü-Funktion" vergleichbar mit dem alten Norton commander für DOS, oder Midnightcommander, dann wäre readln richtig. Willst Du was wie git, format, dir, mkdir, ls oder dergleichen machen wäre das Parsen der Startparameter (ParamStr()) richtig. Grüße |
AW: /? Hilfe in der Konsole
Nein ich möchte in der Console /? schreiben und dann sollen die Codes für die Fehlermeldung kommen.
Ging mit diesem Codeschnipsel:
Delphi-Quellcode:
readln(eingabe);
if eingabe = '/?' then begin |
AW: /? Hilfe in der Konsole
Poste bitte mal den bisher vorhandenen Quelltext deines Konsolenprogrammes, damit wir eine Chance bekommen die Stelle zu identifizieren, an der Du eine Änderung vornehmen kannst und dir ggfls. einen verwertbaren Code-Schnipsel zur Verfügung stellen können.
Mir ist die Aufgabenstellung momentan noch etwas zu difus, um hier eine sinnvolle Antwort geben zu können. |
AW: /? Hilfe in der Konsole
Zitat:
so?
Delphi-Quellcode:
FindCmdLineSwitch(ParamStr(1))
|
AW: /? Hilfe in der Konsole
Zitat:
Delphi-Quellcode:
Das ist alles.
if FindCmdLineSwitch( '?' ) then
WriteLn( 'Ah, der Herr möchte die Hilfe sehen!' ); |
AW: /? Hilfe in der Konsole
Okay. Danke die hab ich gesucht. Damit kann ich ja dann auch Starparameter eingeben oder? Stand zumindest so in der Hilfe drin
|
AW: /? Hilfe in der Konsole
Ob und was der Parameter für dich/deine Anwendung bedeutet, dass musst du programmieren.
Damit kannst du nur feststellen, ob der Parameter gesetzt wurde - oder eben nicht. |
AW: /? Hilfe in der Konsole
Zitat:
|
AW: /? Hilfe in der Konsole
Was ist mit "Startparameter eingeben" gemeint? :gruebel:
|
AW: /? Hilfe in der Konsole
Naja bei meinene Programm wird am Anfang das Verzeichnis eingegeben und dann werden PDF Dateien konvertiert. Bekomme zur Zeit noch den EFOpenError:lol:
|
AW: /? Hilfe in der Konsole
Wenn dein Verzeichnis als Startparameter über die Kommandozeile mitgegeben wird und Leerzeichen beinhaltet, mache unbedingt Anführungszeichen drumrum.
Code:
MeinProgramm.exe "C:\Mein Verzeichnis"
|
AW: /? Hilfe in der Konsole
Ja das weiß ich kommt trotzdem noch :D.
Ich schreibs grade neu und schaue mal wie ich mit ParseCmdLineSwitch, ParamStr usw klar komme. |
AW: /? Hilfe in der Konsole
Ich wette mal, dass dein Problem an einer ganz anderen Stelle liegt und null,nix mit den Parametern zu tun hat.
Stell doch einfach mal die Frage zu deinem konkreten
Delphi-Quellcode:
, dann könnten wir dir auch konkret helfen.
EFOpenError
"Herr Doktor, ich habe am ganzen Körper Schmerzen. Wenn ich an den Kopf tippe, an das Knie, an den Bauch, einfach überall." Diagnose: Finger gebrochen! |
AW: /? Hilfe in der Konsole
Naja ich weiß halt nur nicht wie ich das Verzeichnis einlesen soll. Ich weiß das wenn ich das Verzeichnis habe. Das ich dann mit FindFirst und FindNext die FRP Dateien suchen muss und dann meine Routine ablaufen lassen muss.
|
AW: /? Hilfe in der Konsole
Zitat:
Delphi-Quellcode:
der Dateiname ohne Pfad enthalten ist?
TSearchRec
(Was man mit dem Debugger sehr leicht feststellen kann/könnte) Und in der Dokumentation steht es auch ![]() |
AW: /? Hilfe in der Konsole
Also brauche ich FindFirst und FindNext gar nicht?
|
AW: /? Hilfe in der Konsole
Zitat:
Gruß K-H |
AW: /? Hilfe in der Konsole
Ich brauche nur ein Parameter beispielsweise "C:\Alte Dateien\FRP\2010"
Mit diesem Parameter möchte ich dann alle FRP Dateien die in dem Verzeichnis sind konvertieren. Der Parameter soll in der Konsole eingegeben werden. |
AW: /? Hilfe in der Konsole
Zitat:
![]() |
AW: /? Hilfe in der Konsole
Also Gut, nehmen wir mal an, daß wirklich nur der Startpfad übergeben wird.
Delphi-Quellcode:
so ungefähr sollte es funktionieren.
startpfad:='';
for i:=1 to paramcount do startpfad:=startpfad+' '+paramstr[i]; if (length(startpfad)>0) and (startpfad[1]='"') then delete(startpfad,1,1); if (length(startpfad)>0) and (startpfad[length(startpfad)]='"') then delete(startpfad,length(startpfad),1); Wenn u.U. auch noch "/?" oder "-H" übergeben werden sollte, dann mußt Du Dir da etwas einfallen lassen. Gruß K-H P.S. Natürlich brauchst Du Findfirst/Findnext, wie willst Du sonst an die Dateinamen kommen? OK mit Opendialog ginge das auch, wenn man klickwütig ist. |
AW: /? Hilfe in der Konsole
@p80286
Die Quote-Chars werden automatisch entfernt, bzw. erst gar nicht an die Anwendung übergeben.
|
AW: /? Hilfe in der Konsole
Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 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