amiga-news 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.
.