kategoria: ARexx
[#1] [arexx] jak sprawdzic czy katalog istnieje
Czesc,
pierwsze pytanie jak w temacie.

Drugie to poprosze o gotowy szeroki uśmiech kod na wybranie losowego pliku z katalogu - juz mi sie nie chce tracic czasu na metode prob i bledow z manualem pod reka - wolalbym gotowca, hehe.

Dzieki.
[#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 ;)
[#3] Re: [arexx] jak sprawdzic czy katalog istnieje

@BigBang, post #2

Hehe.

1. w manualu napisali ze EXISTS sprawdza czy plik istnieje (nie bylo slowa o katalogu) - wiec zalozylem, ze jest jakas inna droga :)

2. wlasnie chodzilo mi o poczatek (jak dostac zawartosc katalogu nie kombinujac za bardzo) - troche czasu by mi zeszlo zanim doszedlbym do informacji.. ze samym arexxem duzo nie zdzialam - dzieki serdeczne, to mi duzo przyspieszylo sprawe.
Druga czesc gdy juz mam liste to pikus:)

Dzieki jeszcze raz!!
[#4] Re: [arexx] jak sprawdzic czy katalog istnieje

@peceha, post #3

Dodam jeszcze, że random jest do d...
To jest za każdym razem po uruchomieniu 'losuje' liczby w tej samej sekwencji.
Należy podać seed, np. na bazie czasu:
random(1,n,time('s'))
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem