BİLİŞİM - BİLGİSAYAR - EĞİTİM
  Metin Nesnesi
 

Metin (TextStream) Nesnesi

Dosya sistemi nesnesi bize disk sistemine, klasörlere ve dosyalara erişme imkanı verir ama yeni dosyaları oluşturmak veya mevcutlara ek yapmak için yeterli özellik ve metoddan yoksundur. Bunu TextSream nesnesi sağlar.

Bilgisayar işletim sistemlerinin anası, Unix’e aşina iseniz, klavyeden sabit diske kadar bir bilgisayara girdi akımı bulunduğunu, bunlardan birinin de metinler olduğunu hatırlayacaksınız (Aşina değilseniz, şimdi oldunuz!). Bir işletim sistemi, metin dosyalarını okurken, yazarken bir metin akışı olur; TextStream nesnesinin adı da bunu anlatıyor: Metin Akımı. Web Server ve dolayısıyla ASP açısından sabit diske bir metin yazarken, veya sabit diskten bir metin okurken, bir metin akışı nesnesi oluşur. Bu nesnenin özellikleri ve metodlarını kullanarak, örneğin ziyaretçilerin sitemize bırakacakları form bilgilerini Web Server’ın sabit diskine yazdırabiliriz. Veya mevcut metinleri okuyabilir ve bunların içeriğini ziyaretçimize göndereceğimiz HTML sayfanın etiketlerinin içeriği olarak kullanabiliriz. Metin dosyası okumak ve yazmak disk sistemini ilgilendiren bir eylem olduğu için yine Scripting nesnelerinden FileSystemObject nesnesinden yararlanacağız; fakat bu kez değişik metodlar kullanacağız.

Metin Dosyası Oluşturma (CreateTextFile)

Aslında biraz önce, ASP nesnelerinin neler yapabileceğine örnek olarak yazıp dosya_yaz.asp adıyla kaydettiğimiz program, bir metin dosyasını yazdırma işlemiydi. Oradaki kodlara yeniden göz atarsanız, CreateTextFile (metin dosyası oluştur) metodunu yardıma çağırıyor ve bu metoda argüman olarak yeni metin dosyasının yolunu ve adını veriyorduk. Bu metod TextStream nesnesinindir; ve otomatik olarak bu nesnenin diğer metodlarını kullanmamızı sağlar. kullandığımız metodlar ise WriteLine (satır yaz: bir String’i sonuna yeni satır karakteri koyarak dosyaya yazar) ve Close (kapat: açılan metin dosyasını kapatır).

TextStream’in burada kullandığımız ikisinin dışında iki metodu daha vardır:

Write (yaz): Bir String’i dosyaya yazdırır; satır sonuna yeni batır karakteri (Return kodu) koymaz.

WriteBlankLines (boş satır yaz): Bir metin dosyasına argüman olarak vereceğiniz sayıda boş satır yazdırır.

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=ISO-8859-9">

<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.

 
 
  Bugün 110 ziyaretçi (154 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol