lookjapan.COM - IRC ve mIRC dünyasının forumu!   buy vps


  lookjapan.COM - IRC ve mIRC dünyasının forumu! IF - mIRC Scripting mIRC Scripting Dersleri


Yeni Konu   Cevap Yaz

 
LinkBack Seçenekler Stil
Alt 27 Ocak 2015, 22:09   #1
Bir umuttur yaşamak
 
Toprak - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 09 Eylül 1991
Bulunduğu yer: Konya
Mesajlar: 323
WEB Sitesi: https://www.teklan.com.tr/
IRC Sunucusu: irc.teklan.com.tr
İlgi Alanı: mIRC Scripting
Alınan Beğeni: 211
Standart File handling - Dosya işleme

Ders: File handling - Dosya işleme
Yazan: L4roXyL - (Hasan AYDENİZ)
Tarih: 27 Haziran 2009 - Cumartesi

-

File handling konusu mIRC-nin 6.1 sürümünden beri mIRC içerisinde bulunan bir konudur.
File handling kısaca belirtilen dosyayı, belirtilen şekillerde işlemenize/okutmanıza vb. işlemler yapmanıza olanak sağlar.
mIRC Scripting-de fazla kullanıldığını görmemişsinizdir. Lakin bu konuyuda bilmenizde fayda olduğunu düşünüyorum.
Örneğin; bazı addon-larda veya scriptlerde dil seçenekleri/dil-den dile geçiş file handling ile yapılır.
Neyse daha fazla uzatmadan file handling kullanımına geçiyorum.

-

File handling komutları

1- /fopen [-no] <name> <filename>
Bu komut, belirlediğiniz dosyayı<filename> belirlediğiniz isim<name> üzerine açmaya yarar.

Örnek: /fopen deneme deneme.txt
Açıklaması: deneme ismindeki özel isim üzerine deneme.txt açtık.
Aldığımız mesaj: * fopen opened 'deneme' (dosyayolu\deneme.txt)
Parametre bilgileri:
-n: Bu parametre belirtilen isim henüz oluşturulmadıysa, dosyayı belirtilen isme fail(yapılamadı) şeklinde oluşturur.
-o: Bu parametre belirtilen dosyayı yeniden oluşturur(belirtilen dosyadaki tüm veriler silinir)


2- /fclose <name | wildcard>
Bu komut, belirtilen isim eğer mevcut ise, kapatır.

Örnek: /fclose deneme
Açıklaması: deneme ismindeki veri kapatılır.
Örnek: /fclose deneme*
Açıklaması: "deneme" ile başlayan tüm veriler kapatılır.


3- /flist [name | wildcard]
Bu komut, açık olan isimleri ve isme ait dosyaları listelemek için kullanılır.

Örnek: /flist
Açıklaması: Açık olan tüm veriler listelenir.
Örnek: /flist d*
Açıklaması: "d" ile başlayan tüm veriler listelenir.


4- /fseek <name> <position>
Bu komut biraz karmaşıktır. O yüzden size detaylı açıklacağım.
Komutu anlamak için, ilk önce mantığı anlamanız gerekiyor. İlk olarak, "seek" kelimesinin türkçe karşılığı "araştırmak" demektir.
Bu komut ile belirtilen <pozisyonu> araştıralacak daha doğrusu işlev görülecek(okutulacak/yazılacak) pozisyon olarak kaydediyoruz.

Örnek: /fseek deneme 1
Açıklaması: İşlev görülecek pozisyon "1"(başlangıc) olarak belirlendi.
Aldığımız uyarı: * fseek set 'ok' deneme position 1
-
Ek parametreler:
-l <name> <line number>: Bu parametre ile işlev görülecek(okutulacak/yazılacak) olan satırı belirliyoruz.
Örnek: /fseek -l deneme 1
Açıklaması: İşlev görülecek(okutulacak/yazılacak) olan satır 1. satır olarak belirlendi.
Aldığımız uyarı: * fseek set 'deneme' to line 1

-n <name>: Bu parametre ile işlev görülecek(okutulacak/yazılacak) olan satırı bir sonraki satır(next line) olarak belirliyoruz.
Örnek: /fseek -n deneme
Açıklaması: İşlev görülecek(okutulacak/yazılacak) olan satır son belirtilen satırdan bir sonraki satır olarak belirlendi.
Not: Daha önce satır belirtilmediyse, 1. satır olarak belirlenir. Ve her uygulamada işlev görülecek(okutulacak/yazılacak) olan satırı, bir sonraki satır olarak belirler.
Aldığımız uyarı: * fseek set 'deneme' to next line

-w <name> <wildcard>: Bu parametre işlev görülecek(okutulacak/yazılacak) olan satırı belirlediğimiz wildcard(*|?)lı kelime ile belirlememize yarar. Yani belirlediğimiz wildcard-lı kelime hangi satırdaysa, işlev görülecek satır olarak kaydedilir.
Örnek: /fseek -w deneme *d*
Açıklaması: İşlev görülecek(okutulacak/yazılacak) olan satır, içerisinde "d" harfi geçen satır olarak belirlendi.
Aldığımız uyarı: * fseek set 'deneme' to next line matching wildcard '*d*'
Not: Eğer belirtilen karakter yoksa, * fseek failed on 'deneme' uyarısını alırız. Yani işlev görülecek(okutulacak/yazılacak) olan satır belirtilemez ve SIFIRLANIR.

-r <name> <regex>: Bu parametre işlev görülecek(okutulacak/yazılacak) olan satırı belirlediğimiz regex(regular expression)lı kelime ile belirlememize yarar.
Örnek: /fseek -r deneme ^a
Açıklaması: İşlev görülecek(okutulacak/yazılacak) olan satır, "a" karakteri ile BAŞLAYAN satır olarak belirlendi.
Aldığımız uyarı: * fseek set 'deneme' to next line matching regex '^a'


5- /fwrite [-bn] <name> <text | &binvar>
Bu komut, belirtilen ismin<name> üzerine açılmış olan dosyaya text/metin veya &binvar(binary variable) yazdırmaya yarar.
Yazdıracağınız satırı yukarıdaki /fseek komutu ile belirlersiniz. Yani /fseek komutu ile herhangi bir işlev görülecek(okutulacak/yazılacak) satır olarak belirttiyseniz, veri o satıra ve (eğer belirttiyseniz) pozisyona yazdıralacaktır.

Örnek: /fwrite deneme Bu bir denemedir.
Açıklaması: Eğer /fseek komutu ile bir satır ve pozisyon belirttiyseniz, o satıra ve pozisyona "Bu bir denemedir" cümlesi yazdırılır.
Not: Eğer /fseek komutu ile satır veya pozisyon belirlemediyseniz, "Bu bir denemedir." cümlesi 1. satırın 1.(başlangıc) pozisyonuna yazdırılır.
-
Örnek: //fseek -l deneme 5 | fwrite deneme DENEME!
Açıklaması: /fseek komutu ile işlev görülecek olan satırı 5. satır olarak belirliyoruz. Ve 5. satıra "DENEME!" kelimesini yazdırıyoruz.
-
Parametre bilgileri:
-n: Bu parametreyi kullandığınız zaman, veriyi son belirtilen satıra yazdırırsınız. Ve ondan sonraki her uygulamada(-n kullanarak) bir alt satıra yazdırılır veri.
-b: Bu parametre ile, dosyaya belirtilen &binvar(binary variable) yazdırırsınız.
Örnek: //bread ok.txt 0 $lof(deneme.txt) &ok | fwrite -b deneme &ok
Açıklaması: /bread komutu ile deneme.txt dosyasındaki tüm verileri &ok variable-ına atıyoruz. Ve deneme ismine atanan(deneme.txt) dosyasının içerisine &ok variable-ını yazdırıyoruz.
Aldığımız uyarı: * fwrite wrote 246 bytes to 'deneme'
-
/fwrite hakkında bazı bilgiler.
1- Eğer /fseek komutu ile herhangi bir satır belirtilmediyse, veri "-n" parametresi kullanılmadığı sürece her zaman ilk satıra yazdıracaktır.
2- Eğer "-n" parametresi kullanılırsa veri her zaman söz konusu olan satırın bir alt satırına yazdırılacaktır.

-

File handling komutları bu kadardır.
-
File handling konusuna ait 6 adet identifier/tanımımız mevcuttur. Bu tanımlar ile açtığımız dosya hakkında bilgiler, açılan dosyanın satırları vb. bilgilerini okuyabiliyoruz.
Şimdi size bu identifier-ları anlatacağım.

-

File handling identifiers(tanımları)

1- $fopen(name | N) - Prop: fname, pos, eof, err
Bu identifier belirtilen isim hakkında bazı bilgiler verir.
Şöyleki;

1- //echo -: $fopen(0)
Açıklaması: Toplam kaç adet dosyanın açılmış/oluşturulmuş olduğunu gösterir.
-
2- //echo -: $fopen(1)
Açıklaması: Birinci sıradaki açılmış olan ismi(<name>) verir.
-
3- //echo -: $fopen(deneme).pos (pos = position/pozisyon)
Açıklaması: Deneme ismine ait son kalınan pozisyonu verir.
Ek açıklama: /fseek <name> <position> komutu bildiğiniz gibi, belirlenen işlemler için pozisyon belirlememize yarıyordu. İşte bu pozisyon bilgisini ".pos" özelliği ile alıyoruz.
Örnek: //fseek deneme 100 | echo -: $fopen(deneme).pos => 100
-
4- //echo -: $fopen(deneme).fname (fname = file name/dosya adı)
Açıklaması: Belirtilen deneme ismine ait dosyayı verir.
Ek açıklama: Yani denem ismine ahngi dosyayı açtıysak o dosyanın ismini dosya yolu ile beraber verecektir.
-
5- //echo -: $fopen(deneme).err (err = error/hata)
Açıklaması: Belirtilen deneme ismine belirtilen dosya "-n" parametresi ile işlenmişse bu kullanımın cevabı "1" olarak döner.
Örneğin: /fopen -n deneme deneme.txt
Yaptığımızda, "* fopen unable to create 'deneme' (dosya-yolu\deneme.txt)" cevabını alıyorduk. Bunu zaten yukarıda açıklamıştım.
Yani dosya yükleniyordu fakat herhangi bir işlev yapamıyoruz. Yani hatalı olarak dosyayı yükletiyoruz.
-
6- //echo -: $fopen(deneme).eof
Açıklaması: Eğer işlev görülen satır son satırı geçmişse, yani dosyanın sonuysa bu kullanımın cevabı "1" olarak dönecektir.
Örneğin: Deneme.txt dosyası 10 satır ve biz /fseek -l deneme 11 yaptığımızda zaten; "* fseek failed on 'deneme'" cevabını ilk başta alıyoruz.
Yani 11. satır olmadığı için, "başarılamadı" yanıtını alıyoruz. Ve işlev görülecek satır dosya sonu/son satır konumuna geçiyor otomatik olarak.
İşte bu şekilde olduğu zaman, bu kullanım "1" olarak döner. Yani dosya sonuna geldiğimizi belirtir. Aynı şey okutma işlemindede geçerlidir. Okutma işlemi identifier/tanım ile oluyor, onu az sonra açıklayacağım.


2- $fread(name | N)
Bu identifier/tanım, belirtilen isim-deki satırları sırayla teker teker okutmamıza yarar.

Örneğin:
Komutu ile deneme.txt dosyasının 1. satırına A, 2. satırına B, 3. satırına C yazdırdık. Ve deneme ismine herhangi bir file yüklenmemişse, deneme ismine deneme.txt dosyasını yükletiyoruz.
Ve şimdi: //echo -: $fopen(deneme) yaptığımızda, deneme.txt dosyasının ilk satırını okutacaktır. 2. defa yaptığımızda 2. satırını okutacaktır. 3. kez yaptığımızda 3. satırını okutacaktır.
Ve 3. satırı okuttuktan sonra bir kez daha uygularsak, dosyadaki satıların sonuna geldiğimiz için herhangi bir veri okutmaz. Ve yukarıda belirttiğim gibi "$fopen(deneme).eof" tanımı "1" olarak dönecektir.
Şimdi, eğer satır belirtirsek; /fseek -l deneme 2 (işlev görülecek satırı 2. satır olarak belirledik) ve tekrardan; //echo -: $fread(deneme) yaptığımızda, 2. satırı okuturuz. Tekrar yaptığımızda yine 3-4-5(varsa) okuturuz.
Mantığı gayet basit yani. File handling-de aslında herşey /fseek komutunda bitiyor.


3- $fread(name | N, M, &binvar)
Bu identifier/tanım, dosya içerisine yazdırılan &binary variable-ının belirtilen M(byte) miktarını okutmanıza yarar.

Örnek: //bread deneme.txt 0 $lof(deneme.txt) &d | fwrite -b deneme &d | echo -a $fread(deneme,5,&d)
Açıklaması: deneme.txt dosyasını &d variable-na okutuyoruz. Sonra &d variable-ını deneme ismine yazdırıyoruz(deneme.txt içerisine) ve son son olarak daha önce yazdırılan &d variable-ının 5 byte-lık verisini okutuyoruz.


4- $fgetc(name | N)
Bu identifier/tanım okutulan pozisyonun ascc-kod numarasını verir.

Şöyleki; deneme.txt dosyasının 1. satırında ABCDEFGH verisi var diyelim
Ve biz; /fseek -l deneme 1 komutuysa işlev görülecek satırı 1. satır olarak belirledik.
Devamında; //echo -: $fgetc(deneme) yaptığımızda, 1. satırdaki 1. pozisyonunda olan karakterin ascii-kodunu verir.
2. kez uyguladığımızda, 2. pozisyonda olan, 3. kezde 3. pozisyonda karakterlerin (vs vs.) ascii-kodlarını verecektir.
Eğer pozisyon belirtirsek, belirttiğimiz pozisyondaki karakterin ascii-kodunu verecektir.
Örnek: /fseek deneme 3 komutu ile pozisyonu 3 olarak belirledik. 3. pozisyon "D" harfine denk gelmektedir. (A/0 B/1 C/2 vs.)
Ve devamında; //echo -a $fgetc(deneme) yaptığımızda "68" cevabını alırız. 68 D harfinin ascii-kodudur. ($asc(A))
Tekrar uyguladığımızda, 69(E) cevabını alırız. Ve sırayla satır sonuna kadar gider bu şekilde. Veri bulamadığı taktirde zaten işlev sona erer.


5- $feof - $ferr
Bu identifiers/tanımlar $fopen(<name>|<N>).err - $fopen(<name>|<N>).eof tanımları ile aynı işlevi görür.

Zaten bunları yukarıdaki açıklamıştım. Ama yinede kısaca bahsedeyim
//echo -: $ferr yaptığınızda "1" sonucu alırsanız, dosyayı "-n" parametresi(başarılamadı) formatında yükletmişsinizdir demektir.
//echo -: $feof yaptığınızda "1" sonucu alırsanız, dosyadaki işlev sona ermiş demektir. (Bakınız: Eof = END OF FILE/DOSYA SONU)
Eğer yaptığınız işlemlerde "0" cevabını alırsanız ters manaya gelir. Bu kadar basit.

-

File handling hakkında anlatacaklarımın tamamı bu kadardır. Size basit bir örnek vereceğim, e artık gerisi size kalmış.
Örneğin; Deneme.txt içerisinde "a" harfi ile başlayan satırları okutalım.

Kod:
;alias ismi deneme - /deneme
alias deneme {
  ;burada diyoruzki eğer deneme isminde bir isim yoksa(açılmamışsa) deneme.txt dosyasını deneme ismini işle/aç.
  $iif(!$fopen(deneme),.fopen deneme deneme.txt)
  ;burada /while ile deneme isminin işlev görülecek satırı dosya sonuna gelene kadar;
  while (!$fopen(deneme).eof) {
    ;deneme isminde "a" harfi ile başlayan satırı işlev görülecek olan satır olarak belirle
    .fseek -r deneme ^a 
    ;ve bu satırları sırasıyla okut
    echo -: $fread(deneme)
  }
  ;tüm işlemler sonunda deneme ismini kapat
  .fclose deneme
}
-

File handling hakkında önemli açıklamar:

1- Açtığınız ismi/dosyayı işiniz bitince kesinlikle kapatınız. Aksi taktirde dosya isme yüklenmiş ve açık biçimdeyken dosyaya dışarıdan işlev yapamazsınız.
2- mIRC Scripting hakkında orta halli bilgiye sahip değilseniz file handling konusu ile haşır neşir olmanız tavsiye edilmez.
3- Verdiğim tüm örneklerde sadece ".txt" uzantılı dosyalar ile işlev yaptım. Bu demek değildirki sadece .txt uzantılı dosyaları işleyebiliyorsunuz. Her şekilde dosyayı işleyebilirsiniz.(.bmp, .png, .asr, .ebs vs.) .)

-

Dersimiz sona ermiştir. Yapacaklarınız ve/ya yapmak istedikleriniz size ve hayal gücünüze kalmış.
Kolay gelsin.





Ölmek için doğmuştur ya insan; O yüzden her yağmur sonrası Toprak kokusunu sever.
 Toprak isimli Üye şimdilik offline konumundadır   Alıntı

Yeni Konu   Cevap Yaz

Etiketler
dosya, file, handling, işleme


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Bank Asya hisseleri işleme kapatıldı IF-Haber Ekonomi Haberleri 0 16 Temmuz 2016 12:53
Dosya Yükleme Widget Code HTML - CSS - XML 0 23 Eylül 2015 15:59
Linux'ta Dosya İşlemleri Anti GNU - Linux - UNIX 0 16 Ağustos 2015 17:35
Dosya Çağırma Yöntemleri Violence PHP 0 27 Temmuz 2015 22:58
Dosya ve klasör "Identifier(s)" açıklamalı bilgi Toprak mIRC Scripting Dersleri 0 26 Ocak 2015 01:47

web hosting web hosting
 buy vds
 vps buy

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.