Aktuelle Zeit: 29. März 2024 00:29

Alle Zeiten sind UTC + 1 Stunde




 Seite 1 von 1 [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Simple Ini Editor
BeitragVerfasst: 12. Juli 2008 16:29 
Administrator
Benutzeravatar

Registriert: 17. März 2008 13:32
Beiträge: 96
Wohnort: NRW, Germany
;; Simple Ini file Editor
;; Usage /ini <path to ini file>
;; Allows adding/deletition/modifing of items only (not sections!)

dialog ini {
  title "Simple INI Editor ©2008 Christopher 'Sephiroth' R."
  size -1 -1 300 255
  option dbu
  list 1, 5 25 65 225, sort size
  list 2, 80 15 55 210, size hsbar
  list 3, 135 15 155 210, size hsbar

  button "&Open", 20, 5 5 65 12
  text "",19, 5 17 50 8

  box "Settings", 4, 75 5 220 245
  button "&Edit", 5, 140 230 40 12
  button "&Delete", 6, 190 230 40 12
  button "&Add", 7, 92 230 40 12
  button "&Save", 8, 235 230 40 12, save

  button "cancel", 50,0 0 0 0,hide cancel
  text "temp",9, 0 0 0 0,hide
  text "temp",10, 0 0 0 0,hide
  text "temp",11, 0 0 0 0,hide
}
alias ini {
  if (!$dialog(ini)) { dialog -m ini ini }
  var %ini = $iif($1-,$1-,$mircini)
  did -r ini 1,2,3,9,10
  did -a ini 10 %ini
  var %x = $ini(%ini,0)
  var %i = 0
  while (%i < %x) {
    inc %i
    did -a ini 1 $ini(%ini,%i)
  }
  did -z ini 1
  did -ra ini 19 $nopath($longfn(%ini))
  did -ra ini 11 $nofile(%ini)
}
on *:dialog:ini:sclick:20:{
  var %section = $did(1).seltext
  var %line = $did(2).sel
  if (%line) && (%section) {
    if ($input(Save current changes to File $qt($trim($did(10),20) $+ $iif($trim($did(10),40) != $did(10),$nopath($did(10)))) into $chr(91) $+ %section $+ $chr(93) $+ ?,adyqu,Confirm)) {
      var %section = $did(1).seltext
      !.remini $qt($did(10)) %section
      var %x = $did(2).lines
      var %i = 0
      while (%i < %x) {
        inc %i
        !.writeini -n $qt($did(10)) %section $did(2,%i) $did(3,%i)
      }
    }
  }
  var %lastpath = $iif($isdir($did(11)),$did(11),$mircdir)
  ini $$sfile(%lastpath $+ *.ini,Please select ini File,Load...).shortfn
}
on *:dialog:ini:sclick:7:{
  var %section = $did(1).seltext
  if (%section) {
    var %name = $remove($$input(Insert Itemname: $crlf $crlf (Note: $chr(91) $chr(93) and space will be removed from Itemname.),adoeiu,Item),$asc(91),$asc(93),$chr(32))
    var %item = $$input(Insert Value for Item $trim(%name,20) $+ :,adoeiu,Value)
    if ($input(Item: $trim(%name,20) $+ $crlf $+ Value: $trim(%item,20),adyiu,Add?)) {
      if ($didwm($dname,2,%name,1)) {
        var %found = $v1
        if (!$input(Item $trim(%name,20) already exists $+ $chr(44) if you click yes you will overwrite it!,adwyu,Overwrite?)) { return }
      }
      if (%found) did -d ini 2,3 %found
      did -a ini 2 %name
      did -a ini 3 %item
    }
  }
}
alias -l trim {
  return $left($1,$2) $+ $iif($len($1) > $2,...)
}
on *:dialog:ini:sclick:5:{
  var %section = $did(1).seltext
  if (%section) {
    var %line = $did(2).sel
    if (%line) {
      var %name = $did(2).seltext
      var %item = $did(3).seltext
      var %newitem = $$input(New Value for $trim(%name,20) $+ :,adoeiu,Value,%item)
      if ($input(Are you sure to change $trim(%name,20) Value: $crlf $+ Oldvalue: $trim(%item,20) $crlf $+ Newvalue: $trim(%newitem,20),adyiu,Edit?)) {
        did -d ini 3 %line
        did -i ini 3 %line %newitem
        did -c ini 3 %line
      }
    }
  }
}
on *:dialog:ini:dclick:2,3:{
  var %section = $did(1).seltext
  if (%section) {
    var %line = $did(2).sel
    if (%line) {
      var %name = $did(2).seltext
      var %item = $did(3).seltext
      var %newitem = $$input(New Value for $trim(%name,20) $+ :,adoeiu,Value,%item)
      if ($input(Are you sure to change $trim(%name,20) Value: $crlf $+ Oldvalue: $trim(%item,20) $crlf $+ Newvalue: $trim(%newitem,20),adyiu,Edit?)) {
        did -d ini 3 %line
        did -i ini 3 %line %newitem
        did -c ini 3 %line
      }
    }
  }
}
on *:dialog:ini:sclick:6:{
  var %section = $did(1).seltext
  var %line = $did(2).sel
  if (%line) && (%section) {

    var %name = $did(2,%line)
    var %item = $did(3,%line)
    if ($input(Are you sure to remove this: $crlf $crlf $+ Item: $trim(%name,20) $crlf $+ Value: $trim(%item,30),adywu,Remove?)) {
      did -d ini 2,3 %line
    }
    if ($did(2,%line)) { did -c ini 2,3 %line }
    else { did -c ini 2,3 $did(2).lines }
  }
}
on *:dialog:ini:sclick:50:{
  var %section = $did(1).seltext
  var %line = $did(2).sel
  if (%line) && (%section) {
    if ($input(Save current changes to File $qt($trim($did(10),20) $+ $iif($trim($did(10),40) != $did(10),$nopath($did(10)))) into $chr(91) $+ %section $+ $chr(93) $+ ?,adyqu,Confirm)) {
      var %section = $did(1).seltext
      !.remini $qt($did(10)) %section
      var %x = $did(2).lines
      var %i = 0
      while (%i < %x) {
        inc %i
        !.writeini -n $qt($did(10)) %section $did(2,%i) $did(3,%i)
      }
    }
  }
}
on *:dialog:ini:sclick:8:{
  var %section = $did(1).seltext
  !.remini $qt($did(10)) %section
  var %x = $did(2).lines
  var %i = 0
  while (%i < %x) {
    inc %i
    !.writeini -n $qt($did(10)) %section $did(2,%i) $did(3,%i)
  }
}
on *:dialog:ini:sclick:1:{
  var %inisec = $did($did).seltext
  var %ini = $did(10)
  if ($did(9) != %inisec) {
    did -r $dname 2,3
    if (%inisec) {
      hmake initemp 1000
      hload -i initemp $qt(%ini) %inisec
      var %x = $hget(initemp,0).item
      var %i = 0
      while (%i < %x) {
        inc %i
        var %name = $hget(initemp,%i).item
        var %read = $hget(initemp,%i).data
        did -a $dname 2 %name
        did -a $dname 3 %read
      }
      did -z $dname 2,3
      did -ra $dname 9 %inisec
      did -c $dname 2,3 1
      hfree initemp
    }
  }
}
on *:dialog:ini:sclick:2,3:{
  var %o = $iif($did == 2,3,2)
  did -c $dname %o $did($did).sel
}



_________________
one step closer to world domination
Cyberscripters Administrator/Founder
   
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
 Seite 1 von 1 [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  

cron