Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Tom42
Anmeldungsdatum: 09.02.2005 Beiträge: 21 Wohnort: Wolfsburg
|
Verfasst am: 16.11.2010, 01:15 Titel: Suche Hilfe (Comandline - Parser) |
|
|
Hallo Leute,
für ein Project brauche ich Hilfe für einen Comandline Parser.
Habe keine Idee wie ich das angehen kann.
Beispiel -> *.exe [Optionen] Infile Outfile
Vielen Dank |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 16.11.2010, 01:25 Titel: |
|
|
Wobei genau brauchst du denn Hilfe?
Wenn es darum geht, ein Programm mit Parametern zu starten, dann sollte das weiterhelfen: COMMAND.
Um die übergebenen Parameter, also die Dateien zu lesen/schreiben: OPEN.
Wenn du Hilfe für den Parser allgemein brauchst, musst du schon mehr dazu sagen, was du parsen willst, also Beispeiel für Input und Output.
Eine "Art" Parser habe ich vor kurzem zu Anschauungszwecken hochgeladen: Parser-Beispiel. |
|
Nach oben |
|
 |
Tom42
Anmeldungsdatum: 09.02.2005 Beiträge: 21 Wohnort: Wolfsburg
|
Verfasst am: 16.11.2010, 01:37 Titel: Comandline - Parser |
|
|
Hallo
hier mal das Projeckt um welches es geht:
http://forum.qbasic.at/viewtopic.php?t=7329
ich möchte bestimmte einstellungen für die Lame_Enc.dll
übergeben zb. Bitrate VBR also mehre Optionen
sowie das Infile und änderung des OutFile (später um die ID3Tags)
zu übergeben.
Das alles soll über Exact Audio Copy gesteuert werden können
oder aber auch Direkt auf der Console.
Gruss Thomas |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 16.11.2010, 09:53 Titel: Re: Comandline - Parser |
|
|
Tom42 hat Folgendes geschrieben: | Das alles soll über Exact Audio Copy gesteuert werden können
oder aber auch Direkt auf der Console. |
Sorry, aber gibt es nicht genau dafür lame.exe? EAC kennt die nötigen LAME-parameter. Was für einen Mehrwert versprichst du dir von einen eigenen Wrapper-EXE? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Tom42
Anmeldungsdatum: 09.02.2005 Beiträge: 21 Wohnort: Wolfsburg
|
Verfasst am: 16.11.2010, 11:18 Titel: Comandline - Parser |
|
|
Hallo Jojo,
grundsätzlich hast Du schon recht das ich Lame dazu benutzen könnte.
Mir geht es aber darum dies mit FreeBasic umzusetzten.
Vieleicht kann mit diesem Code jemand anderes was daraus machen oder
auch nur zum spass oder .....
Ich habe schon einige Bespiele gesehen in FB, die aus C nach FB umgestetz wurden und werden.
Für mich selber ist es zum lernen was daraus noch entstehen
kann/könnte weiß ich [noch]nicht.
Im moment ist es zum Spass und für alle die sich dafür Intressieren.
PS. als ich diesen Coden [FBME] hier http://forum.qbasic.at/viewtopic.php?t=7329
abegelegt hatte wurde dieser in recht kurzer Zeit oft gelesen
z.Z ca 260 mal
Ich hoffe Du kannst mit trotzdem bei meinen Problem mit
dem Parsen ein wenig weiterhelfen.
Gruss
Thomas |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 16.11.2010, 12:28 Titel: |
|
|
[Feuerwerk]500 Beiträge[/Feuerwerk]
Ich verstehe immer noch nicht wo dein Problem liegt. Auch dein Beitrag im englischen Forum lässt diese Frage offen.
Sowohl ich als auch j_milton haben dir COMMAND gegeben. Du musst diesen Befehl doch nur zu Beginn ausführen, die Werte, die als Parameter an das Programm übergeben wurden, in Variablen speichern und die Variablen im Code an entsprechender Stelle einfügen. Mit einem Parser hat das erstmal wenig zu tun.
Wenn du nicht genau die Schwierigkeit erklärst, die du hast, wird es mit der Hilfe natürlich auch schwer. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 16.11.2010, 20:33 Titel: |
|
|
GNU GetOpt |
|
Nach oben |
|
 |
Tom42
Anmeldungsdatum: 09.02.2005 Beiträge: 21 Wohnort: Wolfsburg
|
Verfasst am: 16.11.2010, 22:36 Titel: Comandline - Parser |
|
|
Hi.
User 28398 hat mich verstanden das ist genau das was ich meine
hier Info dazu.
BEZEICHNUNG
getopt - werte Kommandozeilenoptionen aus
BESCHREIBUNG
Die Funktion getopt() wertet die Kommandozeilenoptionen aus. Ihre
Argumente argc und argv sind die Argumentanzahl und das Argumentenfeld
wie zur Funktion main() bei Programmaufruf übergeben. Ein Element von
argv , dass mit ‘-’ beginnt (und nicht exact "-" or "--") ist, ist ein
Optionselement. Die Zeichen dieses Elementes (ohne das einleitende
‘-’) sind Optionszeichen. Wenn getopt() wiederholt aufgerufen wird,
gibt sie aufeinanderfolgend jedes der Optionszeichen von jedem
Optionselement zurück.
Wenn getopt() ein weiteres Optionszeichen findet, gibt sie dieses
Zeichen zurück, wobei die externe Variable optind und eine statische
Variable nextchar auf neuen Stand gesetzt werden, so dass der nächste
Aufruf von getopt() die Suche mit dem folgenden Optionszeichen oder
argv-Element fortsetzen kann.
Wenn es keine weiteren Optionszeichen gibt, gibt getopt() -1 zurück.
Dann ist optind der Index in argv des ersten argv-Elementes, das keine
Option ist.
optstring ist ein String, der die gültigen Optionszeichen enthält.
Wenn solche ein Zeichen von einem Doppelpunkt gefolgt wird, benötigt
diese Option ein Argument, weswegen getopt einen Zeiger auf den
folgenden Text in dem selben argv-Element oder den Text des folgenden
argv-Elementes in optarg platziert. Zwei Doppelpunkte bedeuten, dass
diese Option ein optionales Argument nimmt; wenn es Text im aktuellen
argv-Element, wird er in optarg zurückgegeben, anderenfalls wird optarg
auf Null gesetzt. Dieses ist eine GNU-Erweiterung. Wenn optstring W
gefolgt von einem Semikolon enthält, wird -W foo wie --foo
interpretiert. (Die Option -W ist reserviert von POSIX.2 für die
Implementierung von Erweiterungen.) Dieses Verhalten ist eine GNU-
Erweiterung, die nicht verfügbar war in Bibliotheken vor GNU libc 2.
Per Vorgabe vertauscht getopt() den Inhalt von argv beim Durchsuchen,
so dass eventuell alle Nichtoptionen am Ende stehen. Zwei andere Modi
sind ebenfalls implementiert. Wenn das erste Zeichen von optstring ein
‘+’ ist, oder die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, dann
stoppt die Optionsbearbeitung sobald ein Argument auftritt, dass keine
Option ist. Wenn das erste Zeichen von optstring ein ‘-’ ist, dann
wird jedes Argument von argv, dass keine Option ist, behandelt als wenn
es Argument einer Option mit dem Zeichencode 1 waere. (Dies wird
benutzt von Programmen, die Optionen und andere argv-Elemente in einer
Reihenfolge erwarten, und die Wert auf die Reihenfolge der beiden
legen.) Das spezielle Argument ‘--’ erzwingt die Beendigung der Suche
nach Optionen unabhängig von der Suchmethode.
Wenn getopt() ein Optionszeichen nicht erkennt, wird eine
Fehlernachricht nach stderr ausgegeben, das Zeichen in optopt
gespeichert und ‘?’ zurückgegeben. Das aufrufende Programm kann die
Fehlernachricht verhindern durch setzen von opterr auf 0.
Die Funktion getopt_long() arbeitet wie getopt(), bis auf dass sie auch
lange Optionsnamen unterstützt, die mit zwei Minuszeichen beginnen.
Lange Optionsnamen dürfen abgekürzt werden, wenn die Abkürzung
eindeutig ist, oder exact einer definierten Option entspricht. Eine
lange Option darf einen Parameter der Form --arg=param oder --arg param
nehmen.
Leider kann ich kein C aber so sollte es sein und dies in FB aber wie ??
Gruß |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 17.11.2010, 01:38 Titel: |
|
|
Kleine Korrektur:
for(a=b; a<c; a++) { bla } =
Code: | FOR a = b TO c-1
bla
NEXT |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 17.11.2010, 18:06 Titel: |
|
|
Das hätte er auch sicher selbst gemerkt... nach drei Stunden debugging xD |
|
Nach oben |
|
 |
|