|
Varolan Metin Dosyasına Ek Yapma
(OpenTextFile)
Metin yazdırma işlerinde sık sık uygulayacağımız bir senaryo,
mevcut bir metin dosyasına ek yapmak olacaktır. Örneğin bütün
ziyaretçilerimizin sitemizdeki konuk defterine yazdıklarını, bir
metin dosyasında toplamak isteyebiliriz.
Bunu OpenTextFile metodu ile yapacağız. Bu metod, tahmin
edeceğiniz gibi, açılacak dosyanın yolunu ve adını isteyecektir.
Örneğin, dosya_yaz.asp'nin ilgili satırı şöyle
olacak:
|
|
Set yaz =
YaziFSO.OpenTextFile("c:\yazi_deneme.txt",8,0) |
Burada dosya yolunu ve adını veren birinci argümana ek olarak iki
yeni argüman görüyorsunuz: "8,0" şeklinde. Bunlardan birinicisi
girdi/çıktı durumu (I/O Mode), ikincisi ise biçim (Format)
ile ilgilidir.
I/O Mode parametreleri
şunlardır:
1: okumak için aç 8: eklemek için aç
Açılacak dosyanın biçimini belirttiğimiz son argüman ise şu
değerlerden birini alabilir:
0: ASCII dosyası olarak aç -1: Unicode
dosyası olarak aç (Örneğin içinde Türkçe karakterler varsa)
-2: Sistemin varsayılan dosya türü olarak aç
Buna göre, bir dosyayı salt okumak için açmak amacıyla "1,0"
argümanlarını kullanmamız gerekir. Diyelim ki bir dosyayı açtık.
İçindekileri nasıl okuyabiliriz? Bir döngüyle. İşte örneği:
|
|
<% Option Explicit
%> <HTML> <HEAD> <TITLE>ASP ILE
DOSYADAN METİN OKUMA</TITLE> <META
http-equiv="Content-Type" content="text/html;
charset=windows-1254"> </HEAD> <BODY>
<% Dim
DosyaSistemi, MetinDosyasi, Satir Set DosyaSistemi =
CreateObject("Scripting.FileSystemObject") Set MetinDosyasi
= DosyaSistemi.OpenTextFile("c:\yazi_deneme.txt",1,
0) Do Satir =
MetinDosyasi.ReadLine %> <%=Satir%> <% Loop
Until
MetinDosyasi.AtEndOfStream MetinDosyasi.Close %>
</BODY> </HTML>
|
Burada kullandığımız metod dikkatinizi çekmiş olmalı:
ReadLine. Bu, açılan metin dosyasından bir satır okutmamızı
sağlar. İkinci ve son satırları okutmamızı ise Do..Loop
kontrolü sağlıyor. Bu döngü ne kadar sürüyor? MetinDosyası nesnesi,
AtEndOfStream (akımın sonunda) oluncaya kadar. Bu, dosyanın
sonuna geldiğimiz anda ortaya çıkan bir durum; bu durumla
karşılaştığı anda Do..Loop, yaptığı işi durdurup, bir sonraki
komuta geçecektir. Burada kullandığımız ReadLine metoduna ek
olarak yararlanabileceğimiz diğer metodlar ise şunlardır:
Read (oku): Bir sayı örgümanı ile çalışır ve verdiğiniz
sayı kadar karakter okur.
ReadLine (satır oku): Bir satır okur ve String olarak
verir.
ReadAll (tümünü oku): Bütün satırları okur ve tek String
olarak verir.
Skip (atla): Bir sayı argümanı ile çalışır ve verdiğiniz
sayı kadar karakteri atlar.
SkipLine (satır atla): Bir sonraki satıra atlar.
Bu metodlarla sağladığımız okuma işinin kontrolü amacıyla şu
özellikleri de kullanabiliriz:
AtEndOfStream (akımın sonunda): Okutulan dosyanın sonuna
gelinmesi halinde True (doğru) olur.
AtEndOfLine (satırın sonunda): Okutulan satırın sonuna
gelinmesi halinde True (doğru) olur.
|