Example #1
0
function fdetokenize($tokenstring)
{
    //Recupération des tokens
    $tokens = fopen("ti82tokens.dat", "rb");
    fseek($tokens, 0);
    for ($i = 0; $i < filesize("ti82tokens.dat") / 16; $i++) {
        fseek($tokens, $i * 16);
        for ($j = 0; $j < 16; $j++) {
            $MP[$i][$j] = fread($tokens, 1);
            //               echo "'".$MP[$i][$j].'"';
        }
    }
    fclose($tokens);
    //Traitement
    $char = 0;
    $result = "";
    while ($char < count($tokenstring)) {
        $pos = $tokenstring[$char];
        if ($pos > count($MP)) {
            return 'Invalid Token!';
        }
        $st = "";
        $st2 = "";
        for ($i = 1; $i < 9; $i++) {
            if (ord($MP[$pos][$i]) > 0xe) {
                //                  echo $MP[$pos][$i];
                $st .= $MP[$pos][$i];
            }
        }
        $X = PosA($MP[$pos], chr(38) . '*');
        if ($X > 0) {
            $X -= 2;
            $char++;
            if (count(array_slice($tokenstring, $char, 1)) == 0) {
                return 'Error! Missing 2';
            }
            $bufferword = substr($st, $X, 5);
            $st = "";
            if ($bufferword + $tokenstring[$char] <= count($MP)) {
                for ($i = 0; $i < 9; $i++) {
                    if (ord($MP[$bufferword + $tokenstring[$char]][$i]) > 0xf) {
                        $st .= $MP[$bufferword + $tokenstring[$char]][$i];
                    }
                }
            }
        }
        if ($st == chr(38) . '$black') {
            $st = "";
        }
        if ($st == chr(38) . '#CRLF') {
            $st = "\r\n";
        }
        //          echo $pos.' ';
        //          echo '"'.$st.'"<br/>';
        $result .= $st;
        $char++;
    }
    return $result;
}
Example #2
0
function fdetokenize($tokenstring)
{
    //Recupération des tokens
    $tokens = fopen("ti83tokenkeys.dat", "rb");
    $tokenstrue = fopen("ti83tokens.dat", "rb");
    fseek($tokens, 0);
    for ($i = 0; $i < filesize("ti83tokenkeys.dat") / 16; $i++) {
        fseek($tokens, $i * 16);
        fseek($tokenstrue, $i * 16);
        for ($j = 0; $j < 16; $j++) {
            $MP[$i][$j] = fread($tokens, 1);
            $MPtrue[$i][$j] = fread($tokenstrue, 1);
            //               echo "'".$MP[$i][$j].'"';
        }
    }
    fclose($tokens);
    fclose($tokenstrue);
    //Traitement
    $char = 0;
    $result = "";
    $result2 = "";
    while ($char < count($tokenstring) - 3) {
        $pos = $tokenstring[$char];
        if ($pos > count($MP)) {
            return 'Invalid Token!';
        }
        $st = "";
        $sttrue = "";
        $st2 = "";
        $realst = "";
        for ($i = 1; $i < 15; $i++) {
            if (ord($MP[$pos][$i]) > 0xe) {
                //                  echo $MP[$pos][$i];
                $st .= '<img src="./images/8xpkeys/chr' . ord($MP[$pos][$i]) . '.gif">';
            }
            if (ord($MPtrue[$pos][$i]) > 0xe) {
                $sttrue .= $MPtrue[$pos][$i];
                $realst .= $MPtrue[$pos][$i];
            }
        }
        $X = PosA($MP[$pos], chr(38) . '*');
        if ($X > 0) {
            $X -= 2;
            $char++;
            if (count(array_slice($tokenstring, $char, 1)) == 0) {
                return 'Error! Missing 2';
            }
            $bufferword = substr($realst, $X, 5);
            $st = "";
            $sttrue = "";
            if ($bufferword + $tokenstring[$char] <= count($MP)) {
                for ($i = 0; $i < 15; $i++) {
                    if (ord($MP[$bufferword + $tokenstring[$char]][$i]) > 0xf) {
                        $st .= '<img src="./images/8xpkeys/chr' . ord($MP[$bufferword + $tokenstring[$char]][$i]) . '.gif">';
                    }
                    if (ord($MPtrue[$bufferword + $tokenstring[$char]][$i]) > 0xf) {
                        $sttrue .= $MPtrue[$bufferword + $tokenstring[$char]][$i];
                    }
                }
            }
        }
        if ($sttrue == chr(38) . '$black') {
            $sttrue = "";
        }
        if ($sttrue == chr(38) . '#CRLF') {
            $sttrue = "\r\n";
        }
        //          echo $pos.' ';
        //          echo '"'.$st.'"<br/>';
        if ($sttrue == '&$black' || substr($sttrue, 0, 2) == '&*' || substr($sttrue, 0, 2) == '&!') {
            $st = "";
            $sttrue = "";
        }
        $result .= $st;
        if ($pos == 0x3f) {
            $result .= "\r\n";
        }
        $result2 .= $sttrue;
        if ($pos == 0x3f) {
            $result .= "<br>";
        }
        $char++;
    }
    $finalresult = array($result, $result2);
    return $finalresult;
}