| CoCoRiCo | 26 Mayıs 2025 16:29 | Cevap: Text satır sildirme Alıntı: Comanche Nickli Üyeden Alıntı
(Mesaj 1043020967)
slmlar..
/write -dl10+ dosya.txt
/write -dl10- dosya.txt
/write -dl10-50 dosya.txt
Bu 3 komutta dosyadaki tüm satırları siliniyor.
/write -dl10+50 dosya.txt kullandığımızda
/savebuf: invalid window (line 22, script110.ini) hatasını veriyor. |
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 :)
neyse aşağıdaki kodu deneyebilirsin. temiz bir çalışma sağlayacaktır
yeni jenerasyon fonksiyonlar kullanmadım. Kod:
/* Ö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-
}
} |