Rabu, 14 Ogos 2013

Font Besar Berwarna


alias big {
  if ($bigtext.unsupp($1-)) {
    return
  }
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
  while (%i <= $len(%text)) {
    if ($mid(%text, %i, 1) == $chr(3)) {
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
        var %m $regml(mtcol, 1)
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
        inc %i $len(%m)
      }
    }
    else {
      tokenize 32 $bigtext.char($mid(%text, %i, 1))
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
      ; if ($bigtext.kern($mid(%text, %i, 2))) {
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
      ; }
    }
    inc %i
  }
  say $bigtext.format(%lia)
  say $bigtext.format(%lib)
  say $bigtext.format(%lic)
  say $bigtext.format(%lid)
  say $bigtext.format(%lie)
}
alias -l bigtext.char {
  if ($1 === $chr(32)) || ($1 === $null) return $&
    ... $&
    ... $&
    ... $&
    ... $&
    ...
  if ($1 === $chr(160)) return $&
    ..... $&
    ..... $&
    ..... $&
    ..... $&
    .....
  elseif ($1 == 0) return $&
    4.XXXX.$&
    8XX..XX$&
    9XX.XXX$&
    12XXX.XX$&
    13.XXXX.
  elseif ($1 == 1) return $&
    4.XXXX $&
    8XX.XX $&
    9...XX $&
    12...XX $&
    13...XX
  elseif ($1 == 2) return $&
    4XXXXX. $&
    8....XX $&
    9..XX.. $&
    12XX.... $&
    13XXXXXX
  elseif ($1 == 3) return $&
    4XXXXX. $&
    8....XX $&
    9.XXXX. $&
    12....XX $&
    13XXXXX.
  elseif ($1 == 4) return $&
    4.....XXX. $&
    8...XX.XX. $&
    9.XX...XX. $&
    12XXXXXXXXX $&
    13......XX.
  elseif ($1 == 5) return $&
    4XXXXX $&
    8XX... $&
    9XXXX. $&
    12...XX $&
    13XXXX.
  elseif ($1 == 6) return $&
    4.XXXX. $&
    8XX.... $&
    9XXXXX. $&
    12XX..XX $&
    13.XXXX.
  elseif ($1 == 7) return $&
    4XXXXXX $&
    8...XX. $&
    9..XX.. $&
    12.XX... $&
    13XX....
  elseif ($1 == 8) return $&
    4.XXXX. $&
    8XX..XX $&
    9.XXXX. $&
    12XX..XX $&
    13.XXXX.
  elseif ($1 == 9) return $&
    4.XXXX. $&
    8XX..XX $&
    9.XXXXX $&
    12....XX $&
    13.XXXX.
  elseif ($1 == A) return $&
    4.XXXX. $&
    8XX..XX $&
    9XXXXXX $&
    12XX..XX $&
    13XX..XX
  elseif ($1 == B) return $&
    4XXXXX. $&
    8XX..XX $&
    9XXXXX. $&
    12XX..XX $&
    13XXXXX.
  elseif ($1 == C) return $&
    4.XXXX. $&
    8XX..XX $&
    9XX.... $&
    12XX..XX $&
    13.XXXX.
  elseif ($1 == D) return $&
    4XXXX.. $&
    8XX.XX. $&
    9XX..XX $&
    12XX..XX $&
    13XXXXX.
  elseif ($1 == E) return $&
    4XXXXX $&
    8XX... $&
    9XXXX. $&
    12XX... $&
    13XXXXX
  elseif ($1 == F) return $&
    4XXXXX $&
    8XX... $&
    9XXXX. $&
    12XX... $&
    13XX...
  elseif ($1 == G) return $&
    4.XXXX. $&
    8XX.... $&
    9XX.XXX $&
    12XX..XX $&
    13.XXXXX
  elseif ($1 == H) return $&
    4XX...XX $&
    8XX...XX $&
    9XXXXXXX $&
    12XX...XX $&
    13XX...XX
  elseif ($1 == I) return $&
    4XXXX $&
    8.XX. $&
    9.XX. $&
    12.XX. $&
    13XXXX
  elseif ($1 == J) return $&
    4....XX $&
    8....XX $&
    9....XX $&
    12XX..XX $&
    13.XXXX.
  elseif ($1 == K) return $&
    4XX..XX $&
    8XX.XX. $&
    9XXXX.. $&
    12XX.XX. $&
    13XX..XX
  elseif ($1 == L) return $&
    4XX... $&
    8XX... $&
    9XX... $&
    12XX... $&
    13XXXXX
  elseif ($1 == M) return $&
    4XX....XX $&
    8XXX..XXX $&
    9XXXXXXXX $&
    12XX.XX.XX $&
    13XX....XX
  elseif ($1 == N) return $&
    4XX..XX $&
    8XXX.XX $&
    9XXXXXX $&
    12XX.XXX $&
    13XX..XX
  elseif ($1 == O) return $&
    4.XXXX. $&
    8XX..XX $&
    9XX..XX $&
    12XX..XX $&
    13.XXXX.
  elseif ($1 == P) return $&
    4XXXXX. $&
    8XX..XX $&
    9XXXXX. $&
    12XX.... $&
    13XX....
  elseif ($1 == Q) return $&
    4.XXXX.. $&
    8XX..XX. $&
    9XX..XX. $&
    12XX..XX. $&
    13.XXXXXX
  elseif ($1 == R) return $&
    4XXXXX. $&
    8XX..XX $&
    9XXXXX. $&
    12XX..XX $&
    13XX..XX
  elseif ($1 == S) return $&
    4.XXXX. $&
    8XX.... $&
    9.XXXX. $&
    12....XX $&
    13XXXXX.
  elseif ($1 == T) return $&
    4XXXXXX $&
    8..XX.. $&
    9..XX.. $&
    12..XX.. $&
    13..XX..
  elseif ($1 == U) return $&
    4XX..XX $&
    8XX..XX $&
    9XX..XX $&
    12XX..XX $&
    13.XXXX.
  elseif ($1 == V) return $&
    4XX....XX $&
    8XX....XX $&
    9.XX..XX. $&
    12..XXXX.. $&
    13...XX...
  elseif ($1 == W) return $&
    4XX...XX $&
    8XX...XX $&
    9XX.X.XX $&
    12XXXXXXX $&
    13.XX.XX.
  elseif ($1 == X) return $&
    4XX...XX $&
    8.XX.XX. $&
    9..XXX.. $&
    12.XX.XX. $&
    13XX...XX
  elseif ($1 == Y) return $&
    4XX..XX $&
    8XX..XX $&
    9.XXXX. $&
    12..XX.. $&
    13..XX..
  elseif ($1 == Z) return $&
    4XXXXXX $&
    8...XX. $&
    9..XX.. $&
    12.XX... $&
    13XXXXXX
  elseif ($1 == $chr(35)) return $&
    4.XX..XX. $&
    8XXXXXXXX $&
    9.XX..XX. $&
    12XXXXXXXX $&
    13.XX..XX.
  elseif ($1 == ') return $&
    4.XX $&
    11XX. $&
    ... $&
    ... $&
    ...
  elseif ($1 == ") return $&
    4XX..XX $&
    11XX..XX $&
    ...... $&
    ...... $&
    ......
  elseif ($1 == +) return $&
    ...... $&
    4..XX.. $&
    9XXXXXX $&
    11..XX.. $&
    ......
  elseif ($1 == =) return $&
    ...... $&
    11XXXXXX $&
    ...... $&
    4XXXXXX $&
    ......
  elseif ($1 == -) return $&
    ...... $&
    ...... $&
    9XXXXXX $&
    ...... $&
    ......
  elseif ($1 == _) return $&
    ...... $&
    ...... $&
    ...... $&
    ...... $&
    9XXXXXX
  elseif ($1 == ¯) return $&
    9XXXXXX $&
    ...... $&
    ...... $&
    ...... $&
    ......
  elseif ($1 == °) return $&
    4.XXX. $&
    9XX.XX $&
    11.XXX. $&
    ..... $&
    .....
  elseif ($1 == :) return $&
    .. $&
    4XX $&
    .. $&
    11XX $&
    ..
  elseif ($1 == !) return $&
    4XX $&
    9XX $&
    11XX $&
    .. $&
    13XX
  elseif ($1 == ?) return $&
    4XXX. $&
    9..XX $&
    11.XX. $&
    .... $&
    13.XX.
  elseif ($1 == .) return $&
    .. $&
    .. $&
    .. $&
    .. $&
    9XX
  elseif ($1 == /) return $&
    4....XX $&
    8...XX. $&
    9..XX.. $&
    12.XX... $&
    13XX....
  elseif ($1 == \) return $&
    4XX.... $&
    8.XX... $&
    9..XX.. $&
    12...XX. $&
    13....XX
  elseif ($1 == $chr(40)) return $&
    4....X $&
    8..X.. $&
    9X.... $&
    12..X.. $&
    13....X
  elseif ($1 == $chr(41)) return $&
    4X.... $&
    8..X.. $&
    9....X $&
    12..X.. $&
    13X....
  elseif ($1 == $chr(37)) return $&
    4XX..XX $&
    8...XX. $&
    9..XX.. $&
    12.XX... $&
    13XX..XX
  elseif ($1 == [) return $&
    4XXXXX $&
    8XX... $&
    9XX... $&
    12XX... $&
    13XXXXX
  elseif ($1 == ]) return $&
    4XXXXX $&
    8...XX $&
    9...XX $&
    12...XX $&
    13XXXXX
  elseif ($1 == |) return $&
    4.XX. $&
    8.XX. $&
    9.XX. $&
    12.XX. $&
    13.XX.
  elseif ($1 == <) return $&
    4....XX $&
    8..XX.. $&
    9XX.... $&
    12..XX.. $&
    13....XX
  elseif ($1 == >) return $&
    4XX.... $&
    8..XX.. $&
    9....XX $&
    12..XX.. $&
    13XX....
  elseif ($1 == ¸) return $&
    4.... $&
    .... $&
    9.XX. $&
    11..XX $&
    13XXX.
  elseif ($1 == ,) return $&
    4... $&
    ... $&
    9XXX $&
    11.XX $&
    13XX.
}


alias bigtext.unsupp {
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=?:!?./\\()%[|<>_?"?-]/igS, $null, %res)
  return %res
}


alias bigtext.kern {
  var %res $true
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]?|?[J/]|L'|\/\/|\\\\|?J|[_?]?|[?T_]_|>\.|\.<)$/i)) %res = $false
  return %res
}


alias bigtext.format {
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
  while (%i <= $len($1-)) {
    if ($mid($1-, %i, 1) == $chr(3)) {
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
          %curcolor = $gettok($regml(mtcol, 1), 1, 44)
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
        }
        inc %i $len($regml(mtcol, 1))
      }
      elseif (%curcolor) {
        %curcolor =
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
      }
    }
    else {
      %current = $iif($mid($1-, %i, 1) == ., 0, 1)
      if (%previous != %current) {
        %previous = %current
        if (%curcolor) {
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
          else %res = %res $+ $chr(3)
        }
        else %res = %res $+ $chr(22)
      }
      %res = %res $+ $chr(160)
    }
    inc %i
  }
  return %res
}
menu Channel,query {
  FONT BESAR BERWARNA:.big $?="Masukkan Perkataan"
}


Tiada ulasan:

Catat Ulasan