folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Asp"De Textstream Nesnesi -Anlatım



Asp"De Textstream Nesnesi -Anlatım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    angels_demos
    angels_demos's avatar
    Kayıt Tarihi: 03/Haziran/2006
    Erkek

    İnternette TextStream ile ilgili baya bi yazı var ve çoğu saçmalıktan ibarek =).burda textstream nesnesini tamamen size anlatıcm.Textstream txt dosyası üzerinden işlem yapabilmek için tasarlanmış bir nesnedir.Bunu veritabanı olarak kullanabilirsiz.(Soruluyodu o yüzdn yazıyorm).Ne bilim bi üyelik sistemi ziyaretçi defteri vs. yapabilirsiniz.

    1.Sunucu Üzerinden Dosya Oluşturma
    Sunucu üzerinden sayfanıza yazacağınız bir kod ile otomatik text dosyası oluşturabilirsiniz. Bunun için dosya sistem nesnesinden faydalanmak gerekiyor.
    Evet, işlemlerinizi geniş veritabanlarına yaymak istemiyorsanız sizin işinizi Text Tabanlı Basit Veritabanı görecektir. Bir dosya oluşturabilmek için ASP nesnelerinden birisi dosya sistem'e bağlı olan CreateTextFile metodu ile yararlanacağız. Hemen örnek kodumuzu yazalım;

    ----------------------
    Set nesne = Server.CreateObject("Scripting.FileSystemObject")
    Set dosyayarat = nesne.CreateTextFile(Server.MapPath("dosyaadi.txt"),erisim_izni,erisim_formati)
    -------------------

    Bu ifade ile, üzerinde bulunduğunuz klasör'e bir dosyaadi.txt isimli boş text belgesi yaratabilirsiniz. Burada şuna dikkat edilmesi gerekmektedir. Erişim_izni olan alan için aşağıdaki ifadelerden birisini seçmelisiniz. Bu ziyaretçinin dosyayı kullanırken hangi izinlere sahip olacağını simgeler.
    Erişim izni için kullanılabilir özellikler;
    1 = dosyanın sadece okunabilir özellikte açılmasını sağlar. Güncelleme yada kaydetme yapılamaz.
    2 = dosya yazma izinli özellikte açılmasını sağlar. Tüm izinler verilir.
    8 = dosya sadece eklenme (kaydetme) izinli özellikte açılmasını sağlar. Sadece geçmişteki verilerin üzerine ek yapılabilir.

    Erişim formatı için kullanılabilir özellikler;
    -2 = Bilgisayarın default ayarları ile açar.
    -1 = Unicode olarak açar.
    0 = ASCII olarak açar.

    2.Sunucu Üzerinden Text Dosyasına Veri Kaydetme
    Yukarıda Text dosyası oluşturmuştuk şimdi'de aynı örenkten devam edelim
    -----------------
    ' Fso'ya bağlanalım
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    ' Dosyayı yazma izni ile aç, kontrol et yoksa oluştur
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),8,true)
    ' Veriyi yazdıralım
    AO.Write "asp işte aq\-t-\hehehhe:)\-n-\"
    ' dosyayı kpt
    AO.close
    --------------
    Gerekli açıklamaları kod üzerinde belirttim ama burada iki prosedürümüz var bu konu hakkında bilmeniz gereken;
    WriteLine : Kaydettikten sonra bir satır aşağı indirir.
    Write : Kaydettikten sonra olduğu satırdan devam eder.
    Verimizi bu şekilde kaydedeceğiz. şimdi burada yer alan \-t-\ ve \-n-\ verileri hakkında bir bilgi vereyim. Bunu Vbscript'e ait fonksiyonlarlada yapabilirdik fakat, konuları daha da irdelemek için split hakkında geniş bilgi vermek için bu şekilde bir örnek yapmak istedim. İlerleyen yazılarımızda bu konuları işleyeceğiz ama bir bilgi vereyim
    \-t-\ Tab, \-n-\ Yeni satır anlamında kullanacağız.

    şuanda bu konunun mantığını anlamanızı temenni ediyorum. TextStream nesnesini komple tamamladığımızda daha net form ile işlemler yapacağız, ziyaretçi defteri oluşturacağız.

    3.Text Dosyasından Verileri Okuma
    Yine yukarıdan devam edelim yazdırmıştık.Şimdi bunu bi sayfaya yazdıralım
    ------
    ' fso'ya bağlanalım
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    ' Dosyayı kontrol et yoksa oluştur, yazma izni ile aç
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),1)
    ' Veriyi Oku ve Çıktı Ver
    Response.Write AO.ReadAll
    ' Dosyayı kapat
    AO.close
    ----------
    Tabi bu basit bir şekilde oldu.Şimdi split ile tab ve yeni satır işlemlerini kullanarak bu işlemi yapalım.Göze hitap etsin :)

    4.Belirli Karakterleri Okuma
    Read metodunun bize sunduğu bir özellik olan belirli sayıda karakter okuma işlemini gerçekleştirelim.

    -------------------
    ' FSO bağlan
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    ' Dosyayı kontrol et yoksa oluştur, yazma izni ile aç
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),1)
    ' Veriyi Belirli Sayıda Oku ve Çıktı Ver
    Response.Write AO.Read(3)
    ' Dosyayı kapat
    AO.close
    --------------
    Response.Write AO.Read(3) satırında ilk 3 karakteri oku dedik.Yani bu kadar Basit.

    5.Baştan belirli karakterleri atlamak
    Az önce belirtilen karakteri okuyup, kalanı kırpmıştık. şimdi ise bunun tam tersi olanı yapacağız. Belirtilen karakteri kırpıp, kalanı okutacağız.

    ------------
    ' FSO bağlan
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    ' Dosyayı kontrol et yoksa oluştur, yazma izni ile aç
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),1)
    ' Veriyi Kırp ve Çıktı Ver
    AO.Skip(3)
    Response.Write AO.ReadAll
    ' Dosyayı kapat
    AO.close
    -------------
    Peki bu iki işlemi birleştirerek kullanamıyız. Neden olmasın? Hem kırpalım hemde belirtilen karakter kadar okutalım.

    -----------
    ' FSO bağlan
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    ' Dosyayı kontrol et yoksa oluştur, yazma izni ile aç
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),1)
    ' Veriyi Kırp, Süz ve Çıktı Ver
    AO.Skip(3)
    Response.Write AO.Read(5)
    ' Dosyayı kapat
    AO.close
    -----------
    İşte alın ilk 3 karakteri atladık sonraki 5'ini yazdırdık.

    6.Text Dosyasından Belirli Bir Satırı Okutma
    Bu konuda pek fazla söylenecek birşey yok. Daha önce hep ReadAll fonksiyonunu kullanıyorduk şimdi ReadLine fonksiyonu ile yazılarımızı listeleyeceğiz.
    -----------
    ' FSO bağlan
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    ' Dosyayı kontrol et yoksa oluştur, yazma izni ile aç
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),1)
    ' Veriyi Oku ve Çıktı Ver
    Response.Write AO.ReadLine
    ' Dosyayı kapat
    AO.close
    -------------

    7.Text Dosyasından Tüm satırları okumak
    Artık bu konudaki basit işlemlerimiz bitiyor. Döngüler işin içine girmeye başlıyor. şimdi daha önceden de söylediğim gibi hala split nesnemizi kullanmayacağız. (Fakat sizler kaydederken işlemlerinizde düzenli kaydetmeniz halinde split'e gerek duymadan listeleme yapabilirsiniz. Ama yinede bir işlemi daha derli toplu yapabilmek için kaydederken düzensiz, verileri okurken düzenli okumak daha mantıklıdır.)

    Öncelikle kullanacağımız işlemleri düşünelim. Mutlaka ReadAll fonksiyonumuz olacaktır. Unutmayın ReadAll tümünü, ReadLine satırı ifade eder.
    --------------
    ' FSO bağlan
    set nesne = Server.CreateObject("Scripting.FileSystemObject")
    'Dosyayı kontrol et yoksa oluştur, yazma izni ile aç
    set AO = nesne.OpenTextFile(Server.MapPath("veriler.txt"),1)
    'Döngüyü dosyada veri bitene kadar aç, sürdür ve ekrana çıktı ver
    Do while AO.AtEndOfStream = false
    Response.write AO.ReadLine
    Response.write "<br />" 'yanyana olsn diye bi br atlm
    Loop
    ' Dosyayı kapat
    AO.close
    --------------------
    Burada şimdiye kadar karşılaşmadığımız bir düğüm noktası var. AtEndOfStream = false Anlamı ise şudur. Dosyayı baştan sona kadar tarar (Konuk dosyayı konumlama) ve değer sona geldiğinde bitirir.

    Yani kısaca biz şurada şöyle bir ifade veriyoruz, dosyada veri bitene (sonuna gelene) kadar sürdür.
    //=)

Toplam Hit: 856 Toplam Mesaj: 1