* işareti: sunucu mu, istemci mi?
TROIA'daki tüm dosya komutları uygulama sunucusunda çalışır. Bir dosya yolu * ile başlıyorsa istemci (client) tarafındaki bir dosyayı işaret eder; sunucu, dosyayı gerektiğinde istemciden kendine kopyalar (ya da tam tersi):
LOCAL:
STRING ISTEMCI_YOLU,
STRING SUNUCU_YOLU;
ISTEMCI_YOLU = '*C:\Kullanicilar\Enes\Desktop\rapor.txt';
SUNUCU_YOLU = '.\Raporlar\rapor.txt';
Dosya açma, yazma, okuma, kapatma
Bir dosyayı açmak için OPEN FILE, kapatmak için CLOSE FILE kullanılır. Açılış modu (FORNEW, FORREAD, FORAPPEND) hem işlemi hem de istemci-sunucu arasında dosyanın hangi yönde kopyalanacağını belirler:
LOCAL:
STRING YOL;
YOL = '.\Raporlar\log.txt';
OPEN FILE YOL FORNEW;
PUT 'İlk satır';
PUT 'İkinci satır', ' devamı';
CLOSE FILE;
OPEN FILE YOL FORREAD;
GET SATIR;
CLOSE FILE;
PUT her çağrıda otomatik olarak satır sonu ekler; eklememesi için NOENDOFLINE parametresi kullanılır.
FILEID: aynı anda birden fazla dosya
Varsayılan olarak TROIA aynı anda yalnızca bir dosya açık tutmanıza izin verir. Birden fazla dosyayla eş zamanlı çalışmak için her OPEN FILE/CLOSE FILE/PUT/GET çağrısına ayrı bir FILEID verilmelidir:
OPEN FILE YOL1 FORNEW FILEID 'F1';
OPEN FILE YOL2 FORNEW FILEID 'F2';
PUT 'Birinci dosyaya' FILEID 'F1';
PUT 'İkinci dosyaya' FILEID 'F2';
CLOSE FILE FILEID 'F1';
CLOSE FILE FILEID 'F2';
Diğer faydalı komutlar
FILELIST bir klasördeki dosyaları bir TABLE'a doldurur, FILEEXISTS bir dosyanın var olup olmadığını kontrol eder, DELETEFILE siler, ZIPFILE/UNZIPFILE sıkıştırma/açma işlemini tek komutla yapar. Hepsi hem sunucu hem istemci yolları için (yani * ön ekiyle) çalışır.
Sonuç
TROIA'nın dosya API'si küçük ama eksiksiz — asıl dikkat edilmesi gereken nokta, her işlemin gerçekte sunucuda çalıştığını ve * işaretinin istemci tarafını belirttiğini unutmamak.
Yorumlar (0)
Yorum Yaz