IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Çözüldü Text satır sildirme (https://www.ircforumlari.net/mirc-scripting-sorunlari/1060932-text-satir-sildirme.html)

Comanche 16 Mayıs 2025 09:24

Text satır sildirme
 
Slmlar...


/write -dl10 takip.txt komutu sadece 10. satırı sildirebiliyoruz.

Örneğin 10. satırdan sonraki tüm satırları nasıl sildirebiliriz.?

Gurkan 16 Mayıs 2025 15:25

Cevap: Text satır sildirme
 
Alıntı:

Comanche Nickli Üyeden Alıntı (Mesaj 1043020594)
Slmlar...


/write -dl10 takip.txt komutu sadece 10. satırı sildirebiliyoruz.

Örneğin 10. satırdan sonraki tüm satırları nasıl sildirebiliriz.?

Kod:

alias silsatir {
  var %satir = $1
  var %dosya = $2
  var %toplam = $read(%dosya, n)
  while (%toplam > %satir) {
    write -dl %toplam %dosya
    dec %toplam
  }
}

Silmek için direk bir write komutu bulamadım. Coder arkadaşlarım daha kullanışlı bir yol bulacaklardır. Fakat benim aklıma böyle bir yol geldi dene bakalım.

Kullanımı: /silsatir 10 takip.txt

Comanche 16 Mayıs 2025 16:24

Cevap: Text satır sildirme
 
mirc kilitlendi.....

Gurkan 16 Mayıs 2025 16:33

Cevap: Text satır sildirme
 
Alıntı:

Comanche Nickli Üyeden Alıntı (Mesaj 1043020770)
mirc kilitlendi.....

Kod:

alias silsatir {
  var %satir = $1
  var %dosya = $2
  var %toplam = $read(%dosya, n) 
  if (%satir >= %toplam) return 
  while (%toplam > %satir) {
    write -dl$+(%satir,1) %dosya
    dec %toplam
  }
}

böyle dene bakalım

CoCoRiCo 16 Mayıs 2025 20:14

Cevap: Text satır sildirme
 
Loadbuff - Savebuff kullanmalısınız.
Satırları döngü ile silmek sakıncalıdır.
Her silinen satır sonrası satır sayısı değişir.
Bu döngü de hataya neden olur.

Mylife 16 Mayıs 2025 21:00

Cevap: Text satır sildirme
 
Alıntı:

Comanche Nickli Üyeden Alıntı (Mesaj 1043020594)
Slmlar...


/write -dl10 takip.txt komutu sadece 10. satırı sildirebiliyoruz.

Örneğin 10. satırdan sonraki tüm satırları nasıl sildirebiliriz.?



Kod:

on *:INPUT:*: {
  if ($1 == !silsonrasi) {
    var %satir = $2
    if (!%satir) {
      echo -a  Kullanım: !silsonrasi <satır no>
      haltdef
      return
    }

    var %dosya = takip.txt
    var %yedek = takip_temp.txt

    if (!$isfile(%dosya)) {
      echo -a  Dosya bulunamadı: %dosya
      haltdef
      return
    }

    var %toplam = $lines(%dosya)
    if (%toplam == 0) {
      echo -a  Dosya boş görünüyor: %dosya
      haltdef
      return
    }

    if (%satir > %toplam) {
      echo -a  Dosyada sadece %toplam satır var. %satir sonrası yok.
      haltdef
      return
    }

    var %i = 1
    .remove %yedek
    while (%i <= %satir) {
      write %yedek $read(%dosya, %i)
      inc %i
    }


    .remove %dosya
    .rename %yedek %dosya

    echo -a  %satir $+ . satırdan sonrası başarıyla silindi.
    haltdef
  }
}

Takip.txt dosyasının örnek içeriği:
Kod:

ali 
veli 
serkan 
murat 
özkan 
sinan

Kullanım:
Kod:

/silsonrasi 3

3. satırdan sonrası başarıyla silindi.

Takip.txt dosyasının yeni görünümü:
Kod:

ali 
veli 
serkan





Belirtilen satır numarasından sonraki tüm satırları siler. İyi forumlar dilerim.

Comanche 16 Mayıs 2025 21:31

Cevap: Text satır sildirme
 
tşkler

CoCoRiCo 16 Mayıs 2025 21:58

Cevap: Text satır sildirme
 
Aşağıdakiler dışında normal /write fonksiyonu kullanılmaya devam eder
çalışacağını tahmin ediyorum (.


/write -dl10+ dosya.txt # 10. satırdan sonrakileri siler
/write -dl10- dosya.txt # 10. satırdan öncekileri siler
/write -dl10-50 dosya.txt # 10-50 arası satırları siler
/write -dl10+50 dosya.txt # 10+50 satırları dışındakileri siler


Kod:

alias write {
  if ($regex($1, /^-dl(\d+\+|\d+-\d+|\d+-|\d+\+\d+)$/)) {
    var %a~ = $+(@_,$md5($2)) | .window -hn %a~ | .loadbuf -r %a~ $2 | var %b~ = $line(%a~, 0)
    if ($regex($1, /^-dl(\d+)\+$/)) {
      var %c~~ = $calc($regml(1) + 1)
      if (%c~~ <= %b~) { filter -c %a~ %a~ %c~~ - %b~ | filter -x %a~ %a~ * }
    }
    elseif ($regex($1, /^-dl(\d+)-(\d+)$/)) {
      var %c~~ = $regml(1), %d~~ = $regml(2)
      filter -c %a~ %a~ %c~~ - %d~~ | filter -x %a~ %a~ *
    }
    elseif ($regex($1, /^-dl(\d+)-$/)) {
      var %d~~ = $calc($regml(1) - 1)
      if (%d~~ >= 1) { filter -c %a~ %a~ 1 - %d~~ | filter -x %a~ %a~ * }
    }
    elseif ($regex($1, /^-dl(\d+)\+(\d+)$/)) {
      var %a~ = $regml(1), %b~ = $regml(2), %c~~ = $calc(%a~ + %b~ - 1)
      if (%a~ <= %b~ && %c~~ <= %b~) {
        filter -c %a~ %a~ %a~ - %c~~ | filter -x %a~ %a~ *
      }
    }
    .savebuf %a~ $2 | .window -c %a~
  }
  else {
    !write $1-
  }
}


Comanche 17 Mayıs 2025 10:56

Cevap: Text satır sildirme
 
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.

Coderlab 19 Mayıs 2025 02:44

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.


Kod:

alias write {
  if ($regex($1, /^-dl(\d+\+|\d+-\d+|\d+-|\d+\+\d+)$/)) {
    var %file = $2
    if (!$isfile(%file)) { echo -s [write] Dosya bulunamadı: %file | return }

    var %win = $+(@write_,$ticks)
    window -h %win
    loadbuf -r %win %file
    var %total = $line(%win, 0)

    var %start = 0, %end = 0

    if ($regex($1, /^-dl(\d+)\+$/)) {
      %start = $calc($regml(1) + 1)
      %end = %total
    }
    ; -dlX-Y
    elseif ($regex($1, /^-dl(\d+)-(\d+)$/)) {
      %start = $regml(1)
      %end = $regml(2)
    }
    elseif ($regex($1, /^-dl(\d+)-$/)) {
      %start = 1
      %end = $regml(1)
    }
    elseif ($regex($1, /^-dl(\d+)\+(\d+)$/)) {
      %start = $regml(1)
      %end = $calc(%start + $regml(2) - 1)
    }

    if (%start < 1) || (%end < %start) || (%end > %total) {
      window -c %win
      echo -s [write] Geçersiz satır aralığı (%start - %end)
      return
    }

    var %tmp = write_temp.txt
    if ($exists(%tmp)) .remove %tmp
    var %i = %start
    while (%i <= %end) {
      var %line = $line(%win, %i)
      if (%line != $null) write %tmp %line
      inc %i
    }

    .remove %file
    .rename %tmp %file
    window -c %win
    echo -s ? /write $1 $2 tamamlandı. Satırlar: %start - %end
  }
  else {
    !write $1-
  }
}

Kod:

/write -dl10- dosya.txt  -> İlk 10 satır kalır
/write -dl5+ dosya.txt      -> Sadece 6. satırdan sonrası kalır
/write -dl5-15 dosya.txt    -> 5–15 arası kalır
/write -dl20+5 dosya.txt    -> 20’den başlayarak 5 satır kalır (20–24)



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 17:22.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk