evet bu sonucu tahmin edemedim, loadbuf ve savebuf için mIRC ayarlarındaki limitler ve mIRC karakter kodlaması sorun (renkler
vb.) çıkarabilir.
okuma yazma işinde isteğinin eksik olması büyük ayıp
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
neyse aşağıdaki kodu deneyebilirsin. temiz bir çalışma sağlayacaktır
yeni jenerasyon fonksiyonlar kullanmadım.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*
Örnek:
/write -dl5-7 dosya.txt # 5 ile 7 arası bırak (5,6,7)
/write -dl10- dosya.txt # 10 ve sonrası bırak (10..son)
/write -dl10+ dosya.txt # 10 ve öncesi bırak (1..10)
/write -dl10+50 dosya.txt # 10 ile 50 arası bırak
*/
alias write {
if ($regex($1, /^-dl(\d+)-(\d+)$/) || $regex($1, /^-dl(\d+)-$/) || $regex($1, /^-dl(\d+)\+$/) || $regex($1, /^-dl(\d+)\+(\d+)$/)) {
var %f~ = $2
if (!$isfile(%f~)) { echo -a Dosya yok: %f~ | return }
var %t~ = $+($mircdir,temp.t)
.remove -q %t~
var %l~ = $lines(%f~),%i~ = 1
if ($regex($1, /^-dl(\d+)-(\d+)$/)) {
var %s~ = $regml(1),%e~ = $regml(2)
while (%i~ <= %l~) {
var %x~ = $read(%f~, nt, %i~)
if (%i~ >= %s~ && %i~ <= %e~) write -a %t~ %x~
inc %i~
}
}
elseif ($regex($1, /^-dl(\d+)-$/)) {
var %s~ = $regml(1)
while (%i~ <= %l~) {
var %x~ = $read(%f~, nt, %i~)
if (%i~ >= %s~) write -a %t~ %x~
inc %i~
}
}
elseif ($regex($1, /^-dl(\d+)\+$/)) {
var %e~ = $regml(1)
while (%i~ <= %l~) {
var %x~ = $read(%f~, nt, %i~)
if (%i~ <= %e~) write -a %t~ %x~
inc %i~
}
}
elseif ($regex($1, /^-dl(\d+)\+(\d+)$/)) {
var %s~ = $regml(1),%e~ = $regml(2)
while (%i~ <= %l~) {
var %x~ = $read(%f~, nt, %i~)
if (%i~ >= %s~ && %i~ <= %e~) write -a %t~ %x~
inc %i~
}
}
else {
; # Diğer durumlarda dosyayı olduğu gibi kopyala
while (%i~ <= %l~) {
var %x~ = $read(%f~, nt, %i~)
write -a %t~ %x~
inc %i~
}
}
.remove -q %f~
.rename %t~ %f~
}
else {
!write $1-
}
}