ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Shell Gui4Cli etc. | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
21.10.2002, 14:56 Uhr Bladerunner Posts: 1474 Nutzer |
Hmm, bin mir jetzt nicht sicher, ob das eher in die Abteiling programieren sollte... Naja, da es hauptsächlich um ein Shell Problem geht, wirds schon passen. Folgendes Problem, ich habe einen Bug in meiner Amigenerator Frontend der Auftritt bei Files mit Klammern im Dateinamen. Zunächst mal die gesamte Routine, die den Inhalt einer bereits vorhandenen Variable checkt und daraus 2 neue Variablen generiert, eine die nur den Namen des Spieles ohne Dateityp endung enthält (in dem Fall smd oder bin) und die 2te Variable, die dazu genutzt wird einen eventuell vorhandenen screenshot anzuzeigen. Xroutine r3 ;checkt den Inhalt von §.file IF $.file = "" setvar .fil "Rom auswählen" ELSE cli "list $.file >env:.fil lformat %m" cutvar .fil COPY LINE 1 .snap Append env:.snap ".pcx" ENDIF Da der Rest dieser Routine in Ordnung scheint, vermute ich den Übeltäter in dem Listbefehl, den ich hier dick markiert habe. So wie das jetzt ist, werden zwar files mit leerzeichen übernommen, nicht aber wenn Klammern vorhanden sind. Daher die Frage, gibt es eine Möglichkeit das wirklich alle Zeichen in die neue Variable übernommen werden, eben mit Ausnahme der Datentypendung? [ - Antworten - Zitieren - Direktlink - ] |
21.10.2002, 19:15 Uhr yelworC Posts: 401 Nutzer |
Hi! Das mit den Klammern liegt wohl an dem List Befehl. Ich nehme mal an, dass er den Dateinamen aufgrund der Klammern wie ein Namensmuster behandelt. Probiere doch mal diese kleine Arexx-Script: ----------------- Schnipp ----------------- /* ** $VER: StripSuffix.rexx 1.0 (21.10.2002) by Markus "yelworC" Pflaumbaum ** ** Benutzung: rx StripSuffix.rexx <filename> ** Die Ausgabe kann wie in jedem Shellprogramm in eine Datei umgeleitet werden. ** z.B.: rx StripSuffix.rexx Bilder:Bild.jpg >t:output ** Wenn man bei dem Script das S Bit setzt, kann man rx auch weglassen ** Die Ausgabe hat keine eventuell mit übergebenen Anführungszeichen mehr. ** Die muss man also selbst wieder hinzufügen, falls Leerzeichen im Dateinamen sind. */ parse arg filename filename = strip(filename,,'"') punkt = lastpos('.',filename) if punkt > 0 then filename= delstr(filename,punkt) say filename ----------------- Schnapp ----------------- Einfach kopieren und in die Datei rexx:StripSuffix.rexx speichern. Ist wohl alles soweit erklärt. Ich hoffe, dass es bei Dir so funktioniert, wie es das hier tut... bye [ - Antworten - Zitieren - Direktlink - ] |
21.10.2002, 21:02 Uhr Bladerunner Posts: 1474 Nutzer |
Hmm, habs mal versucht, er schreibt mir immer +++ Error 5 in line 13: Unmatched quote Vieleicht ne Idee? bevor ich jetzt mein arexx Handbuch rauskrame... [ - Antworten - Zitieren - Direktlink - ] |
21.10.2002, 22:41 Uhr yelworC Posts: 401 Nutzer |
Hmm... Stimmt... ist hier auch so, wenn ichs kopiere und einfüge. Muss wohl irgendwie mit html/copy/paste oder so zusammenhängen. Hol dir das Script mal bei http://mmphoto.de/stripsuffix.lha das sollte dann gehen. bye [ - Antworten - Zitieren - Direktlink - ] |
21.10.2002, 22:50 Uhr Bladerunner Posts: 1474 Nutzer |
Jau, das wars :-) Zwar noch nicht 100% das was ich brauche (es soll letztlich nur noch der Filename überbleiben, völlig ohne Pfad oder extension, hier aber wird der Pfad noch mit angegeben,) aber das ist egal, das flicke ich mir mit G4C internen Routinen schon noch richtig zusammen. Ich hoffe ich darf mit dem Skript machen was ich will? Werde dich auch im Guide dankend erwähnen Nachtrag: Hmm, zu früh gefreut Hab da wohl einen Denkfehler gemacht, denn die eingabe muss durch eine bereits erstellte env Variable erfolgen, d.h. der Pfad steht in einer Variablen und sollte von da ausgelesen werden.. ne idee? [ Dieser Beitrag wurde von Bladerunner am 21.10.2002 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
21.10.2002, 23:39 Uhr yelworC Posts: 401 Nutzer |
Das mit der Envvariablen ist soweit kein Problem: rx rexx:StripSuffix.rexx 'type env:variable' Dieses ' Zeichen ist direkt über der Tab Taste. Ich schreibe Dir, falls gewünscht, das Script auch noch so um, dass er nur den Dateinamen ausgibt. Ist ja auch keine große Sache... Nachtrag: Natürlich kannst Du mit dem Script machen was Du willst. Den "Source" habe ich ja hier im Forum eh schon freigegeben bye [ Dieser Beitrag wurde von yelworC am 22.10.2002 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
21.10.2002, 23:58 Uhr Bladerunner Posts: 1474 Nutzer |
Jepp, das war es nun, tausend dank Wenn du das Skript natürlich noch so umbauen könntest, das es wirklich nur den Filenamen ausspuckt, das wäre supergenial würde mir ein umständliches Konstrukt ersparen [ - Antworten - Zitieren - Direktlink - ] |
22.10.2002, 00:30 Uhr yelworC Posts: 401 Nutzer |
Hi! Also das mit "rx stripsuffix.rexx 'type env:blahblah'" ist natürlich komplizierter als es sein muss. Ich weiß zwar nicht, obs auch in Gui4Cli geht, aber im Shell direkt geht natürlich auch "rx stripsuffix.rexx $blahblah" Jedenfalls, egal für welche Version Du Dich beim Programmaufruf entscheidest, kannst Du die neue Version des Scripts wie gehabt unter http://www.mmphoto.de/stripsuffix.lha downloaden. Jetzt gibt das Script den Dateinamen "work:irgendwas/datei.endung" nur noch als "datei" aus. bye [ Dieser Beitrag wurde von yelworC am 22.10.2002 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
22.10.2002, 01:33 Uhr Bladerunner Posts: 1474 Nutzer |
Du wirst lachen, das mit $ Variable hatte ich versucht, ohne Erfolg (warum auch immer) Wenn es geht, würde es aber auch in G4C funktionieren, da dort nichts anderes gemacht wird als das Programm wie in einer shell aufzurufen Aufjedenfall nochmals danke du hast mir sehr geholfen, ich stand wirklich vor einem fast unlößbaren Problem (denn genau die Funktion, die Gui4Cli angeblich von Haus aus bieten sollte, ist buggy, sprich es wird der Filename mit extension ausgegeben, darum hatte ich mir schon mit dem Listbefehl ausgeholfen). Dummerweiße haben Neuerdings viele Romfiles klammern in den Dateinamen und mir viel das erst auf, als ich mal ein aktuelleres Rom in die Finger bekam (meine alten stammen noch aus Zeiten wo man eher mit Dosemulatoren und daher 8+3 Dateinamen hantierte) und blöd schaute das es nicht in meinem Listerfenster angezeigt wurde [ - Antworten - Zitieren - Direktlink - ] |
22.10.2002, 04:11 Uhr yelworC Posts: 401 Nutzer |
Eigentlich gibt es überhaupt keinen Grund, dass es mit $variable nicht gehen sollte. Beim List Befehl geht es ja auch. Oder viellicht liegts daran, dass Du das Script irgendwie im "ARexx-Modus" oder so in Gui4Cli startest? Falls es da sowas gibt. Vielleicht würde es in dem Fall dann mit CLI "rx blahblah" in deinem Gui4Cli Script gehen. In meiner Shell (Version 45.12) funtioniert es jedenfalls so. Naja, hauptsache es geht jetzt überhaupt irgendwie bye [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Shell Gui4Cli etc. | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |