Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Suche Hilfe (Comandline - Parser)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Tom42



Anmeldungsdatum: 09.02.2005
Beiträge: 21
Wohnort: Wolfsburg

BeitragVerfasst am: 16.11.2010, 01:15    Titel: Suche Hilfe (Comandline - Parser) Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 16.11.2010, 01:25    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Tom42



Anmeldungsdatum: 09.02.2005
Beiträge: 21
Wohnort: Wolfsburg

BeitragVerfasst am: 16.11.2010, 01:37    Titel: Comandline - Parser Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 16.11.2010, 09:53    Titel: Re: Comandline - Parser Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tom42



Anmeldungsdatum: 09.02.2005
Beiträge: 21
Wohnort: Wolfsburg

BeitragVerfasst am: 16.11.2010, 11:18    Titel: Comandline - Parser Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 16.11.2010, 12:28    Titel: Antworten mit Zitat

[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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 16.11.2010, 20:33    Titel: Antworten mit Zitat

GNU GetOpt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tom42



Anmeldungsdatum: 09.02.2005
Beiträge: 21
Wohnort: Wolfsburg

BeitragVerfasst am: 16.11.2010, 22:36    Titel: Comandline - Parser Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 17.11.2010, 00:17    Titel: Antworten mit Zitat

http://de.wikibooks.org/wiki/C-Programmierung:_Ausdrücke_und_Operatoren
(ist ein Link, mit URL-Tags ist der Beitrag weg)

http://www.gnu.org/s/libc/manual/html_node/Example-of-Getopt.html#Example-of-Getopt

http://www.gnu.org/s/libc/manual/html_node/Using-Getopt.html#Using-Getopt

argv ^= __FB_ARGV__
argc ^= __FB_ARGC__
(Beide nur im Programmtorso)

* = Ptr
& = @
'blabla' = "blabla"
== = =
fprintf = fprintf (crt.bi wird benötigt) / print
for(a=b; a<c; a++) { bla } =
Code:
a = b
for a to c
bla
next
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 17.11.2010, 01:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 17.11.2010, 18:06    Titel: Antworten mit Zitat

Das hätte er auch sicher selbst gemerkt... nach drei Stunden debugging xD
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz