[#2]
Re: [arexx] jak sprawdzic czy katalog istnieje
@peceha,
post #1
Gdzie są granice lenistwa? ;)
Powiedzmy, że ram: t istnieje, a ram:z nie istnieje
say exists('ram:t') -> zwróci 1
say exists('ram:z') -> zwróci 0
Co do drugiego... arexx nie ma dodatkowych opcji instrukcji ADDRESS pozwalających np. na przypisanie outputu komendy z DOS-a do zmiennej (ja nie znalazłem bezpośredniego sposobu), dlatego trzeba kombinować, jakoś tak:
1. zrzucenie listy plików w katalogu do pliku
address command 'list quick >pliki'
2. policzyć pliki w katalogu; znowu - Amiga DOS nie ma odpowiednika 'wc -l' (tj. pewnie na Aminecie coś jest), czyli trzeba w arexx-ie w pętli wczytać listę plików z p. 1 linia po linii, aby je zliczyć:
open('f','pliki','r')
n=0;
do while ~eof('f')
linia=readline('f')
n=n+1
end
3. wylosować sobie liczbę z zakresu 1 do (liczba plików)
random(1,n)
4. odczytać linię o numerze wylosowanym - to będzie losowa nazwa pliku z katalogu
znowu pętla, aż dojedziemy do wylosowanego numeru linii
Trochę mało eleganckie, ale nie mam lepszego pomysłu (tj. mam: napisać gotowca w C czy E i potem uruchomić spod arexxa ;)