Hi,

I've added aliases to my nick tracker script, but I'm having problems with them. The alias called fixfile is supposed to scan each token of a line of nicks and times and remove the tokens that didn't get written with both nick and time, but it doesn't do that. I'll have to post the whole script so you can see what my variables are. Thanks for any help.
Code:
on 1:JOIN:#: {
  set %addlength. [ $+ [ $nick ] ] $len($wildsite)
  set -u5 %owner.chan $chan 
  set %join.address. [ $+ [ $nick ] ] $wildsite
  set %join.precompaddress. [ $+ [ $nick ] ] $read(C:\mirc\nicks.txt,w,$wildsite $+ *)
  set %oldaddress $readn
  set %join.compaddress. [ $+ [ $nick ] ] $left(%join.precompaddress. [ $+ [ $nick ] ],%addlength. [ $+ [ $nick ] ])
  set %join.compnick. [ $+ [ $nick ] ] $read(C:\mirc\nicks.txt,w,$nick $+ *)
  set %oldnick $readn
  set %join.time. [ $+ [ $nick ] ] $mid($ctime,2,8)
  set %join.newnick $chr(44) $+ $nick %join.time
  set %join.bothnew $wildsite $+ $chr(44) $+ $nick  %join.time. [ $+ [ $nick ] ]
  if (whatever1* iswm $nick) { 
    if (%join.address. [ $+ [ $nick ] ] == %join.compaddress. [ $+ [ $nick ] ]) { 
      echo 4 -s address match $nick
      $newecho($nick,%join.precompaddress. [ $+ [ $nick ] ]) 
    }
    else { echo 4 -s No Match $nick }
  }
  elseif (whatever2* iswm $nick) { 
    if (%join.address. [ $+ [ $nick ] ] == %join.compaddress. [ $+ [ $nick ] ]) { 
      $newecho($nick,%join.precompaddress. [ $+ [ $nick ] ]) 
      echo 4 -s address match $nick
    }
    else { echo 4 -s No Match $nick }
  }
  elseif (%join.address. [ $+ [ $nick ] ] == %join.compaddress. [ $+ [ $nick ] ]) { 
    echo 4 -s address match $nick
    $newecho($nick,%join.precompaddress. [ $+ [ $nick ] ]) 
    goto NickEval 
  }
  else { 
    write C:\mirc\nicks.txt %join.bothnew 
    echo 4 -s $nick is a new entry 
  }
  halt
  :NickEval
  if ($nick = %join.compnick. [ $+ [ $nick ] ]) { 
    $newecho($nick,%join.precompaddress. [ $+ [ $nick ] ]) 
    var %templine = $read(C:\mirc\nicks.txt,w,$wildsite $+ *)
     [color:red]  [/color] ;I just changed passline to equal $wildsite 
   [color:red]  [/color] var %passline = $wildsite
    echo -a passline is %passline join.newnick is %join.newnick
    $fixfile(%passline,%join.newnick)  
  }
  else { 
    var %templine = $read(C:\mirc\nicks.txt,s,$wildsite $+ *)
     [color:red]  [/color] var %passline = $wildsite
    $fixfile(%passline,%join.newnick) 
  }
}
on 1:NICK: {
  set %addlength. [ $+ [ $newnick ] ] $len($wildsite)
  set %nick.address. [ $+ [ $newnick ] ] $wildsite
  set %nick.precompaddress. [ $+ [ $newnick ] ] $read(C:\mirc\nicks.txt,w,$wildsite $+ *)
  set %oldaddress $readn 
  set %nick.compaddress. [ $+ [ $newnick ] ] $left(%nick.precompaddress. [ $+ [ $newnick ] ],%addlength. [ $+ [ $newnick ] ])
  set %nick.compnewnick $read(C:\mirc\nicks.txt,w,$newnick $+ *) 
  set %oldnick $readn
  set %nick.newnick $newnick %nick.nicktime 
  set %nick.nicktime $mid($ctime,2,8)
  set %nick.bothnew $wildsite $+ $chr(44) $+ $newnick %nick.nicktime 
  set %nick.newnicktime $newnick %nick.nicktime
  if ($newnick == $me) { echo }
  elseif ($newnick == %nick.compnewnick) { 
    echo -s nick match
    $newecho($newnick,%nick.precompaddress. [ $+ [ $newnick ] ]) 
  }
  elseif (%nick.address. [ $+ [ $newnick ] ] == %nick.compaddress. [ $+ [ $newnick ] ]) { 
    echo -s address match 
    var %templine = $read(C:\mirc\nicks.txt,w,$wildsite $+ *)
     [color:red]  [/color] var %passline = $wildsite
    $fixfile(%passline,%nick.newnicktime)
    $newecho($newnick,%nick.precompaddress. [ $+ [ $newnick ] ]) 
  }
  else { 
    write C:\mirc\nicks.txt %nick.bothnew
    echo 4 -s $newnick is a new entry 
  }
}
on 1:QUIT: {
  unset % $+ *. $+ $nick
}
on 1:PART: {
  unset % $+ *. $+ $nick
  if (% $+ *. $+ $newnick) { unset % $+ *. $+ $newnick }
}
alias newecho {  
  var %list = $2
  var %line, %i = 2, %m = $numtok(%list,44)
  while (%i <= %m) {
    var %name = 3 $gettok($gettok(%list,%i,44),1,32)
    var %numdate = $gettok($gettok(%list,%i,44),2,32)
    var %newnumdate = 1 $+ %numdate $+ 0
    var %newdate = 2 $asctime(%newnumdate, ddd mmm d yyyy h:nn TT)
    var %line = %line $+ %name 2 %newdate $+ $chr(44)
    inc %i
  }  
  var %line = $gettok(4 $1 was %line,1-,44)
  echo -a %line 
}
alias fixfile {
  var %entry = $1
  var %newstuff = $2
  var %linenum = $read(C:\mirc\nicks.txt,w,%entry $+ *)
  var %toknum = $numtok(%linenum,44)
  var %N = 1
  var %preline
  while (%N <= %toknum) {
    if (%N = 1) {
      var %firsttok = $gettok(%linenum,%N,44)
    }  
    elseif ($right($gettok(%linenum,%N,44),8) isnum) {
      var %goodtok =  $gettok(%linenum,%N,44) $+ $chr(44)
    }
    else { 
      unset %goodtok
      var %badtok = %badtok + 1    
    }
    var %preline = %preline $+ %goodtok
    inc %N  
  }
  var %newline = %firsttok $+ $chr(44) $+ %preline
  echo -s line written
  write -al %entry C:\mirc\nicks.txt %newline %newstuff
  if (%badtok > 1) { echo -s %badtok tokens fixed }
  else { echo -s 0 tokens fixed }
}

Last edited by bwr30060; 17/01/06 12:57 AM.