Short: ARexx: get 1st selected file in dest or source-lister Author: okir@gmx.de (Olaf Kirstein) Uploader: okir gmx de (Olaf Kirstein) Type: util/dopus Architecture: generic English and german version (deutscher Text in der unteren Hälfte) These two small ARexx-scripts (FirstSelDest.dopus5 und FirstSelSource.dopus5) have the full path of the first selected file in dest- or source-lister as the result. Is no lister present or no file selected, a small errorrequester will pop up. I wrote these scripts, because with them it is very easy to take action on an selected file in an other lister, while using the filepopupmenu of a defined datatype. In the functioneditor, defining: AmigaDos set firstsel `rx DOpus5:ARexx/FirstSelDest.dopus5` you kann refer to this local variable with $firstsel. This method is more flexible than the DOpus-intern {v}-variant, because before DOpus executes the function, it checks if the refered var exists. Since it is a local one, and not present when DOpus checks it, the var would be ignored generating the batchfile in T:-directory. I defined a datatype for spatch from SAS: Function : AmigaDOS set spatchold `rx DOpus5:ARexx/FirstSelSource.dopus5 {Qp}` AmigaDOS set spatchout "$spatchold".new AmigaDOS spatch -o$spatchout -p{f} $spatchold AmigaDOS unset spatchold AmigaDOS unset spatchout I select the original file in source-lister, press right mouse over the patchfile and select the above patch-function in the menu. This generates a new file in the source-lister. (Spatch is used for updates of shareware or commercial soft- ware). Installation: ------------- Just copy the scripts to DOpus5:ARexx. Usage: ------ In the functioneditor of DOpus5 you should give the ARexx-port {Qp} as argument. Leaving it out, results in trying to use DOPUS.1 as port. Since the scriptss write the result to StdOut, you can use this output as an argument for setting local (set) or global (setenv) vars. You also can redirect the output to a file using ">". AmigaDos set varname `rx scriptname {Qp}` oder AmigaDos setenv varname `rx scriptname {Qp}` here you should delete the vars after using them with unset or unsetenv. ARexx {Qp} >output redirects the output to a file. Any suggestions or bugreports please to my email: Olaf Kirstein okir@gmx.de =============================================================================== Diese beiden kleinen Arexx-Scripte (FirstSelDest.dopus5 und FirstSelSource.dopus5) liefern den kompletten Pfad des jeweils ersten angewählten Files im Quell- oder Ziellister. Ist kein entsprechender Lister vorhanden, oder kein File angewählt, gibt es einen kleinen Fehlerrequester. Ich habe die Scripte geschrieben, da es hiermit sehr leicht ist, in den File-Popup-Menüs Aktionen mit angewählten Files aus anderen Listern vorzunehmen. Definiert man beispielsweise im Funktionseditor folgendes: AmigaDos set firstsel `rx DOpus5:ARexx/FirstSelDest.dopus5` kann man in der Funktion mit $firstsel auf diese lokale Variable zurückgreifen. Diese Art ist um einiges flexibler, da die DOpus-interne {v}-Variante vor Ausführung der Funktion prüft, ob eine Variable existiert. Das ist bei lokalen Variablen natürlich nicht der Fall, und so würde DOpus bei der Generierung des Batchfiles im T:-Verzeichnis {v} einfach ignorieren. Ich habe hiermit einen Dateityp für spatch von SAS definiert: Funktion : AmigaDOS set spatchold `rx DOpus5:ARexx/FirstSelSource.dopus5 {Qp}` AmigaDOS set spatchout "$spatchold".new AmigaDOS spatch -o$spatchout -p{f} $spatchold AmigaDOS unset spatchold AmigaDOS unset spatchout Dann wähle ich im Quelllister einfach das Originalfile an, drücke über dem entsprechendem Patchfile die rechte Maustaste und wähle in dem Menü die obige Patchfunktion. Es wird dann ein neues File im Quelllister erzeugt. (Spatch wird bei vielen Updates von Shareware oder kommerzieller Software verwendet). Installation: ------------- Einfach die Scripte nach DOpus5:ARexx kopieren. Benutzung: ---------- Im Funktionseditor von DOpus5 sollte man als Argument den ARexx-Port {Qp} angeben. Wird dasArgument weggelassen, wird versucht DOPUS.1 als Port zu verwenden. Da die Scripte das Ergebnis nach StdOut liefern, kann man diese direkt als Argument für das Setzen von lokalen (set) oder globalen (setenv) Variablen verwenden. Man kann das Ergebnis auch mittels ">" in eine Datei umleiten: AmigaDos set varname `rx scriptname {Qp}` oder AmigaDos setenv varname `rx scriptname {Qp}` hier sollte man möglichst mit unset bzw. unsetenv die Variablen nach Verwendung wieder löschen. ARexx {Qp} >ausgabe leitet die Ausgabe in eine Datei um. Verbesserungsvorschläge und Fehlermeldungen bitte per EMail an: Olaf Kirstein okir@gmx.de