REXX Programlama Dili - Yerleşik İşlevler - STREAM
Dizilim
STREAM(isim, 'STATE')
STREAM(isim, 'COMMAND', buyruk)
STREAM(isim, 'DESCRIPTION')
İşlev
Bir akım (dosya) üzerinde değişik işlemlerin yapılmasını sağlamak.
Değiştirge(ler)
isim
Üzerinde işlem yapılacak akımı (dosyayı) tanımlayan dizgi ya da tam-yol bulunağı.
'STATE'
"isim" değiştirgesi ile belirtilen akımın o andaki durumu hakkında bilgi edinilmesini sağlar. Bu değiştirgenin kullanılması sonucu elde edilebilecek değerler ve anlamları
ERROR
Akım üzerinde hatalı bir işlem yapılmak isteniyor.
NOTREADY
İlgili akım, üzerinde herhangi bir girdi/çıktı işleminin yapılabilmesi için hazır değil.
READY
İlgili akım, üzerinde herhangi bir girdi/çıktı işleminin yapılabilmesi için hazır.
UNKNOWN
Üzerinde işlem yapılmak istenen akım üzerinde herhangi bir girdi/çıktı işleminin yapılabilmesi için gerekli bilgiye erişilemiyor.
şeklinde tanımlıdır.
'COMMAND'
"buyruk" değiştirgesi ile belirtilen değişik işlem buyruklarının yürütülmesini sağlar.
buyruk
İlgili akım üzerinde uygulanacak buyrukları içeren karakter katarı (dizgi). Kullanımı söz konusu olabilecek buyruklar ve bu buyrukların anlamları
OPEN
"isim" değiştirgesi ile belirtilen akımın açılmasını sağlar. Kendisi ile birlikte kullanılabilecek diğer alt buyruklar ve bu buyrukların anlamları
READ
"isim" değiştirgesi ile belirtilen akımın okuma amaçlı olarak açılmasını sağlar.
WRITE
"isim" değiştirgesi ile belirtilen akımın yazma amaçlı olarak açılmasını sağlar.
BOTH
"isim" değiştirgesi ile belirtilen akımın hem okuma hem de yazma amaçlı olarak açılmasını sağlar.
APPEND
"isim" değiştirgesi ile belirtilen akımın ekleme amaçlı olarak açılmasını sağlar. Yazma imleci dosyanın sonunda konumlanır.
REPLACE
"isim" değiştirgesi ile belirtilen akımın yerini alma amaçlı olarak yapılmasını sağlar. Yazma imleci dosyanın başında konumlandırılır ve ilgili akım budanır.
NOBUFFER
"isim" değiştirgesi ile belirtilen akımın ara bölge kullanılmadan açılmasını sağlar.
AUTOSYNC
"isim" değiştirgesi ile belirtilen akımın üzerinde yapılacak işlemlerin anuyumlu olarak yapılması koşuluyla ilgili akımın açılmasını sağlar.
SHAREREAD
"isim" değiştirgesi ile belirtilen akım üzerinde yapılacak okuma işlemlerinin paylaşımlı olarak yapılmasını sağlar.
NOSHARE
"isim" değiştirgesi ile belirtilen akım üzerindeki işlemlere paylaşım izninin verilmemesini sağlar.
DELAY
SHAREREAD ve DELAY alt buyrukları için yapılacak işlemlere gecikme payı bırakılmasını sağlar.
BINARY
"isim" değiştirgesi ile belirtilen akımın ikili kayıt biçimini esas alan bir akım olarak açılmasını sağlar.
RECLENGTH uzunluk
"isim" değiştirgesi ile belirtilen akım için geçerli olacak kayıt uzunluğunun "uzunluk" değiştirgesi ile belirtilen değer kadar olmasını sağlar.
şeklinde tanımlıdır.
CLOSE
"isim" değiştirgesi ile belirtilen akımın kapatılmasını sağlar.
FLUSH
"isim" değiştirgesi ile belirtilen akıma yazılmak üzere ara bellek bölgesinde bekletilen verilerin serbest bırakılmasını sağlar.
SEEK bulunak
"isim" değiştirgesi ile belirtilen akım üzerinde "bulunak" değiştirgesi ile belirtilen kayıt konumundan itibaren karaktersel ve satırsal bazda okuma ve yazma işlemi için konum araştırması yapılmasını sağlar.
"bulunak" değiştirgesinden sonra belirtilebilecek işleçler ve anlamları
Eşit ( = )
Akımın başını dikkate alarak "bulunak" değiştirgesi ile belirtilen kayıt konumuna odaklanılmasını sağlar.
Küçük ( < )
Akımın sonunu dikkate alarak "bulunak" değiştirgesi ile belirtilen kayıt konumuna odaklanılmasını sağlar.
Artı ( + )
O andaki okuma/yazma konumundan ileriye gidilmesini sağlar.
Eksi ( - )
O andaki okuma/yazma konumundan geriye gidilmesini sağlar.
şeklinde tanımlıdır.
Bu işleçleri sonrasında belirtilebilecek ardıl alt buyruklar ve bu buyrukların anlamları da
READ
SEEK buyruğunun okuma amaçlı olarak kullanılmasını sağlar.
WRITE
SEEK buyruğunun yazma amaçlı olarak kullanılmasını sağlar.
CHAR
SEEK buyruğu ile araştırma yapılacak okuma/yazma konum belirleme işleminin karaktersel bazda yapılmasını sağlar.
LINE
SEEK buyruğu ile araştırma yapılacak okuma/yazma konum belirleme işleminin satırsal bazda yapılmasını sağlar.
şeklinde tanımlıdır.
POSITION
SEEK alt buyruğa ile aynı işleve sahiptir. Yani, "SEEK" dizgisi yerine "POSITON" dizgisi kullanılabilir.
QUERY
Bu alt buyruğa ait değişik dizilimler ve bu dizilimlerin anlamları
QUERY EXISTS
"isim" değiştirgesi ile akımın mevcut olup olmadığının öğrenilmesini sağlar. Eğer "isim" değiştirgesi ile belirtilen akım varsa ilgili akımın tam-yol bulunağı elde edilir. Eğer yoksa boş dizgi (null) elde edilir.
QUERY SIZE
"isim" değiştirgesi ile belirtilen akımın bir dosya olması halinde, boyutunun elde edilmesini sağlar.
QUERY DATETIME
"isim" değiştirgesi ile belirtilen akıma ait zaman (tarih ve saat) bilgisinin ABD zaman sunu biçiminde elde edilmesini sağlar.
QUERY TIMESTAMP
"isim" değiştirgesi ile belirtilen akıma ait zaman bilgisinin elde edilmesini sağlar.
QUERY POSITION [READ|WRITE] [CHAR|LINE]
"isim" değiştirgesi ile belirtilen akıma ait okuma/yazma işlemi konumunun karaktersel/satırsal bazda elde edilmesini sağlar.
QUERY STREAMTYPE
"isim" değiştirgesi ile belirtilen akımın tipinin elde edilmesini sağlar. Elde edilmesi olası değerler ve bu değerlere ait anlamlar
PERSISTENT
"isim" değiştirgesi ile belirtilen akım, süreklilik arz eden bir akım.
TRANSIENT
"isim" değiştirgesi ile belirtilen akım, geçicilik arz eden bir akım.
şeklinde tanımlıdır.
şeklinde tanımlıdır.
şeklinde tanımlıdır.
'DESCRIPTION'
"isim" değiştirgesi ile belirtilen akımın o andaki durumu hakkında daha ayrıntılı bilginin elde edilmesini sağlar.
Örnek Kullanım
Burada yer verilen her bir örnek, STREAM yerleşik işlevine ait farklı kullanımlar için ayrı ayrı oluşturulmuştur.
Örnek - 1
"deney.dat" ismindeki dosyanın tipini öğrenmek amacıyla
Say STREAM('deney.dat', 'Command', 'Query Streamtype')
diziliminin kullanılması yeterlidir.
Örnek - 2
"deney.dat" dosyasının satırsal bazdaki okuma konumunu, o anda bulunulan konumdan itibaren 2 kayıt ileriye götürmek amacıyla
RC = STREAM('deney.dat', 'Command', 'Seek +2 Write Line')
dizilimini kullanmak yeterlidir.
Örnek - 3
"deney.dat" dosyasının karaktersel bazdaki okuma konumunu öğrenmek amacıyla
Say STREAM('deney.dat', 'Command',,
'Query Position Write Char')
dizilimini kullanmak yeterlidir.
Örnek - 4
"deney.dat" dosyasını hem okuma hem de yazma amaçlı olarak ikili-kayıt biçiminde açmak ve bu işlemi yaparken de kayıt uzunluğunu 32 bayt olarak belirlemek amacıyla
RC = STREAM('deney.dat', 'Command',,
'Open Both Binary Reclength 32')
dizilimini kullanmak yeterlidir.
Açıklama(lar)
STREAM() yerleşik işlevinin yorumlanması ve değiştirgelerinin anlamları, bazı REXX yorumlayıcılarında farklılık göstermektedir. Bundan dolayı, kullanımı tercih edilen REXX yorumlayıcısının başvuru kaynaklarındaki bilgilerin dikkatlice incelenmesi ve irdelenmesi önerilir.
''STATE", "COMMAND" ve "DESCRIPTION" değerlerinin tamamı yerine sadece baş harfleri de kullanılabilir. Eğer tamamı kullanılacaksa, söz dizim okunabilirliğini sağlamak için ilk harfleri büyük ve diğer harfleri küçük olarak belirtilmelidir.
"COMMAND" buyruğuna ait alt buyrukların belirtiminde, söz dizim okunabilirliğini sağlamak için ilk harfler büyük ve diğer harfler küçük olarak belirtilmelidir.