Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>converted</title>
- </head>
- <body>
- <strong>result :</strong>
- <br>
- <textarea name="textarea" id="textarea" cols="10000" rows="32">
- <?php
- $gdFile= $_FILES["userfile"]["name"];
- $gdFileVal= $_FILES["userfile"]["tmp_name"];
- if (is_uploaded_file($gdFileVal))
- {
- $gdFileStr = file_get_contents($gdFileVal);
- }
- else
- {
- die("bad file upload");
- }
- $tagVal= ")=)=)";
- $i_null = "";
- $i_otherchar = "";
- $i_non_at = "a-z|A-Z|0-9|\x20|\x21|\x22|\x23|\x24-\x2F|\x3A-\x3F|\x5B|\x5C|\x5D|\x5E|\x60|\x7B-\x7E|\x80-\xFE";
- $gd_line_delim = "(\r)+|(\n)+|(\r\n)+(\n\r)+";
- $gd_delim = "(\x20)";
- $gd_pointer = "(\x20(\x40){1}(a-z|A-Z|0-9|.){1}(".$i_non_at."|.)*(\x40){1}\x20)";
- $gd_level = "\x20(0){1}|(1-9){1}(0-9)*\x20";
- $c_lr = -ord("~");
- $c_ud = -ord(":");
- $c_lu = -ord("J");
- $c_ld = -ord("7");
- $c_ru = -ord("L");
- $c_rd = -ord("F");
- $c_lru = -ord("A");
- $c_lrd = -ord("V");
- $c_udl = -ord("C");
- $c_udr = -ord("D");
- $c_lrud = -ord("%");
- $c_C = -ord(" ");
- $c_LR = -ord("-");
- $c_UD = -ord("!");
- $c_LU = -ord("'");
- $c_LD = -ord(".");
- $c_RU = -ord("`");
- $c_RD = -ord(",");
- $c_LRU = -ord("^");
- $c_LRD = -ord("v");
- $c_UDL = -ord("(");
- $c_UDR = -ord(")");
- $c_LRUD = -ord("+");
- $c_C = -ord(" ");
- $c_LRud = -ord("*");
- $c_Lud = -ord("{");
- $c_Rud = -ord("}");
- $c_Ulr = -ord("h");
- $c_Dlr = -ord("y");
- $c_UDl = -ord("[");
- $c_UDr = -ord("]");
- $c_UDlr = -ord("#");
- $foundIndex = -1;
- class subRec
- {
- var $i = -1;
- var $iVal = "";
- var $iFrom = 0;
- var $iFromR = 0;
- var $iBoxC = 0;
- var $iBoxCR = 0;
- var $iBoxL = 0;
- var $iBoxR = 0;
- var $iArr = array();
- }
- class gdRec
- {
- var $i = -1;
- var $iLevel = -1;
- var $iArrLevel = -1;
- var $iRef = "";
- var $iTag = "";
- var $iVal = "";
- var $iText = "";
- var $iBoxText = "";
- var $iBoxLine = -1;
- var $iBoxC = 0;
- var $iBoxL = 0;
- var $iBoxR = 0;
- var $iBoxLen = 0;
- var $iChilds = array();
- var $iSubF = array();
- var $iUpF = array();
- var $iSubLine = 0;
- var $iArrSub = array();
- var $iAdded = -1;
- }
- class gdLine
- {
- var $iIsBox = FALSE;
- var $iFs = array();
- var $iFChars = array();
- var $iRChars = array();
- var $iReChars = array();
- var $iChars = array();
- var $iRecs = array();
- var $iReStr = "";
- var $iChStr = "";
- var $iChBStr = "";
- var $iStr = "";
- var $iRStr = "";
- var $iLStr = "";
- function gdLine()
- {
- }
- function funcStr($fin, $n)
- {
- global $c_ud;
- global $c_UD;
- $s = "";
- $rs = "";
- $cs = "";
- $crs = "";
- $bs = "";
- $brs = "";
- $c = count($this->iChars);
- for ($k = 0; $k <= $c-1; $k++)
- {
- $ch = $this->iChars[$k];
- $fch = $this->getFChar($k);
- $rch = $this->getRChar($k);
- if ($fin)
- {
- $s =$s.(($ch == 0) ? " ":chr(abs($ch)));
- $cs =$cs.(($fch == -2) ? chr($rch) : (($ch == 0) ? " ":chr(abs($ch))));
- $bs =$bs.(($fch == -2 && $this->getFChar($k+1) == -2) ? " " :"|");
- // UTD $bs =$bs.(($fch == -2 && $this->getFChar($k+1) == -2) ? " " :"|");
- }
- else
- {
- $s =$s.(($ch == 0) ? " ":($this->iIsBox ? "#":(($ch == $c_ud || $ch == $c_UD) ? "|":"=")));
- //$s =$s.(($ch == 0) ? " ":($this->iIsBox ? "#":(($ch == $c_ud || $ch == $c_UD) ? "|":"=")));
- }
- }
- $c = count($this->iReChars);
- for ($k = 0; $k <= $c-1; $k++)
- {
- $ch = $this->iReChars[$k];
- $fch = $this->getFChar(-$k-1);
- $rch = $this->getRChar(-$k-1);
- if ($fin)
- {
- $rs =$rs.(($ch == 0) ? " ":chr(abs($ch)));
- $crs =$crs.(($fch == -2) ? chr($rch) : (($ch == 0) ? " ":chr(abs($ch))));
- $brs =$brs.(($fch == -2 && $this->getFChar(-$k) == -2) ? " " :"|");
- //$brs =$brs.(($fch == -2 && $this->getFChar(-$k) == -2) ? " " :"|");
- }
- else
- {
- //$rs =$rs.(($ch == 0) ? " ":($this->iIsBox ? "#":(($ch == $c_ud || $ch == $c_UD) ? "|":"=")));
- $rs =$rs.(($ch == 0) ? " ":($this->iIsBox ? "#":(($ch == $c_ud || $ch == $c_UD) ? "|":"=")));
- }
- }
- if ($n > -1)
- {
- if ($n > $c)
- {
- $rs =$rs.str_repeat(" ", $n-$c);
- $crs =$crs.str_repeat(" ", $n-$c);
- $brs =$brs.str_repeat(" ", $n-$c);
- }
- else
- {
- $rs =substr($rs, 0, $n);
- $crs =substr($crs, 0, $n);
- $brs =substr($brs, 0, $n);
- }
- }
- $this->iLStr = $rs;
- $this->iRStr = $s;
- $this->iStr = strrev($rs).$s;
- $this->iReStr = strrev($this->iStr);
- $this->iChStr = strrev($crs).$cs;
- $this->iChBStr = strrev($brs).$bs;
- }
- function funcSubStr($fin, $n, $i, $ii)
- {
- $this->funcStr($fin, $n);
- if ($i == $ii)
- {
- return("");
- }
- if ($i >= 0)
- {
- return(substr($this->iRStr, $i, $ii-$i+1));
- }
- if ($ii < 0)
- {
- return(strrev(substr($this->iLStr, -$ii-1, $ii-$i+1)));
- }
- return(strrev(substr($this->iLStr, 0, -$i)).substr($this->iRStr, 0, $ii+1));
- }
- function getRChar($n)
- {
- if (in_array($n, $this->iFs))
- {
- $arr=array_keys($this->iFs, $n);
- return($this->iRChars[$arr[0]]);
- }
- else
- {
- return(-1);
- }
- }
- function getFChar($n)
- {
- if (in_array($n, $this->iFs))
- {
- $arr=array_keys($this->iFs, $n);
- return($this->iFChars[$arr[0]]);
- }
- else
- {
- return(-1);
- }
- }
- function setFChar($n, $s, $r)
- {
- if (in_array($n, $this->iFs))
- {
- $arr=array_keys($this->iFs, $n);
- $this->iFChars[$arr[0]]=$s;
- $this->iRChars[$arr[0]]=$r;
- }
- else
- {
- array_push($this->iFs, $n);
- array_push($this->iFChars, $s);
- array_push($this->iRChars, $r);
- }
- }
- function getGDChar($n)
- {
- if ($n>=0)
- {
- if ($n<count($this->iChars))
- {
- return($this->iChars[$n]);
- }
- else
- {
- return(0);
- }
- }
- else
- {
- if (-$n-1<count($this->iReChars))
- {
- return($this->iReChars[-$n-1]);
- }
- else
- {
- return(0);
- }
- }
- }
- function setGDChar($n, $s)
- {
- if ($n>=0)
- {
- $c = count($this->iChars);
- if ($n>$c)
- {
- for ($k = $c; $k <= $n+54; $k++)
- {
- array_push($this->iChars, 0);
- }
- }
- $this->iChars[$n]=$s;
- }
- else
- {
- $c = count($this->iReChars);
- if (-$n-1>$c)
- {
- for ($k = $c; $k <= -$n-1+54; $k++)
- {
- array_push($this->iReChars, 0);
- }
- }
- $this->iReChars[-$n-1]=$s;
- }
- }
- function addBox($n,$s,$en)
- {
- global $c_RD;
- global $c_LD;
- global $c_LR;
- global $c_RU;
- global $c_LU;
- global $c_LRD;
- $c = strlen($s);
- $cc = floor($c/2);
- for ($k = 0; $k <= $c-1; $k++)
- {
- $ch = substr($s, $k, 1);
- $rch = $c_LR;
- if ($k == 0)
- {
- $rch = $c_RU;
- }
- elseif ($k == $c-1)
- {
- $rch = $c_LU;
- }
- elseif ($k == $cc)
- {
- if ($en)
- {
- $rch = $c_LRD;///
- }
- }
- $this->setGDChar($n+$k, $rch);
- $this->setFChar($n+$k, -2, ord($ch));
- }
- }
- }
- function trace($s)
- {
- print_r($s);///
- print_r("<br>");///
- }
- function funcreg($s)
- {
- return(" ".$s." ");
- }
- function traceR($i)
- {
- global $arrGDRecs;
- global $gc;
- trace("");///
- for ($rk = 0; $rk <= $gc-1; $rk++)
- {
- $rec = $arrGDRecs[$rk];
- if ($rec->iTag == "INDI" || !$i)
- {
- trace($rec);///
- }
- }
- trace("");///
- }
- function traceLines($fin)
- {
- global $arrLines;
- global $tagVal;
- $n = 0;
- $cnt = count($arrLines);
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $arrLines[$k]->funcStr($fin, -1);
- $ss = rtrim($arrLines[$k]->iLStr);
- $c = strlen($ss);
- if ($c > $n)
- {
- $n = $c;
- }
- }
- $m = $n;
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $arrLines[$k]->funcStr($fin, $m);
- $ss = rtrim($arrLines[$k]->iStr);
- $c = strlen($ss);
- if ($c > $n)
- {
- $n = $c;
- }
- }
- $s = "{{familytree/start}}"."\n";
- $ts = "{{familytree/start}}"."\n";
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $ss = rtrim($arrLines[$k]->iStr);
- $rss = rtrim($arrLines[$k]->iChStr);
- $bss = rtrim($arrLines[$k]->iChBStr);
- $c = strlen($rss);
- if ($n > $c)
- {
- $rss = $rss.str_repeat(" ", $n-$c);
- }
- else
- {
- $rss = substr($rss, 0, $n);
- }
- $c = strlen($bss);
- if ($n > $c)
- {
- $bss = $bss.str_repeat(" ", $n-$c);
- }
- else
- {
- $bss = substr($bss, 0, $n);
- }
- $c = strlen($ss);
- if ($n > $c)
- {
- $ss = $ss.str_repeat(" ", $n-$c);
- }
- else
- {
- $ss = substr($ss, 0, $n);
- }
- $sss = "";
- $ssss = "";
- $c = strlen($ss);
- for ($j = 0; $j <= $c-1; $j++)
- {
- $ch = substr($ss, $j, 1);
- $rch = substr($rss, $j, 1);
- $bch =substr($bss, $j, 1);
- $sss = $sss.$rch.(($j < $c-1) ? trim($bch) : "");
- $ssss = $ssss.$rch.(($j < $c-1) ? $bch : "");
- }
- $s = $s."{{familytree |".$sss."}}"."\n";
- $ts = $ts."{{familytree |".$ssss."}}"."\n";
- }
- $s = $s."{{familytree/end}}"."\n";
- $ts = $ts."{{familytree/end}}"."\n";
- return $s;///
- ///print_r($tagVal.$s.$tagVal);
- ///$fp = fopen("tree.txt", "w");
- ///fwrite($fp, $s);
- ///fclose($fp);
- ///$fp = fopen("treeTemp.txt", "w");
- ///fwrite($fp, $ts);
- ///fclose($fp);
- }
- function traceFinal()
- {
- global $arrFinal;
- global $tagVal;
- $n = 0;
- $fin = TRUE;
- $cnt = count($arrFinal)-1;
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $arrFinal[$k]->funcStr($fin, -1);
- $ss = rtrim($arrFinal[$k]->iLStr);
- $c = strlen($ss);
- if ($c > $n)
- {
- $n = $c;
- }
- }
- $m = $n;
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $arrFinal[$k]->funcStr($fin, $m);
- $ss = rtrim($arrFinal[$k]->iStr);
- $c = strlen($ss);
- if ($c > $n)
- {
- $n = $c;
- }
- }
- $s = "";
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $ss = rtrim($arrFinal[$k]->iStr);
- $c = strlen($ss);
- if ($n > $c)
- {
- $ss = $ss.str_repeat(" ", $n-$c);
- }
- else
- {
- $ss = substr($ss, 0, $n);
- }
- $s = $s.$ss."\n";
- }
- print_r($tagVal.$s.$tagVal);///
- $s = str_replace(" ", ".", $s);;
- $fp = fopen("treeChars.txt", "w");
- fwrite($fp, $s);
- fclose($fp);
- }
- function clearTags()
- {
- global $arrGDRecs;
- global $gc;
- for ($rk = 0; $rk <= $gc-1; $rk++)
- {
- $arrGDRecs[$rk]->iAdded = -1;
- }
- }
- function findLevel($n)
- {
- global $arrGDRecs;
- global $gc;
- global $maxLevel;
- $rec = $arrGDRecs[$n];
- if ($rec->iArrLevel != -1)
- {
- return($rec->iArrLevel);
- }
- if (count($rec->iUpF) == 0)
- {
- $arrGDRecs[$n]->iArrLevel=0;
- return($arrGDRecs[$n]->iArrLevel);
- }
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $prec = $arrGDRecs[$k];
- if (findInArr($rec->iUpF,$prec->iSubF))
- {
- $arrGDRecs[$n]->iArrLevel=max($arrGDRecs[$n]->iArrLevel,findLevel($k)+1);
- if ($arrGDRecs[$n]->iArrLevel > $maxLevel)
- {
- $maxLevel = $arrGDRecs[$n]->iArrLevel;
- }
- }
- }
- return($arrGDRecs[$n]->iArrLevel);
- }
- function findChilds($n)
- {
- global $arrGDRecs;
- global $gc;
- global $arrGD;
- $rec = $arrGDRecs[$n];
- if (count($rec->iUpF) == 0)
- {
- return;
- }
- $arr = array();
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $prec = $arrGDRecs[$k];
- if (findInArr($rec->iUpF,$prec->iSubF))
- {
- array_push($arr, $rec);
- }
- }
- $arrGDRecs[$n]->iArrSub = $arr;
- }
- function findInArr($arr,$arrf)
- {
- global $foundIndex;
- for ($k = 0; $k <= count($arr)-1; $k++)
- {
- if (in_array($arr[$k], $arrf))
- {
- $foundIndex = $k;
- return(TRUE);
- }
- }
- $foundIndex = -1;
- return(FALSE);
- }
- function findByRef($s)
- {
- global $arrGDRecs;
- global $gc;
- if ($s == "")
- {
- return(-1);
- }
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if ($rec->iRef == $s)
- {
- return($k);
- }
- }
- return(-1);
- }
- function addBox($sn,$dr)
- {
- global $arrGDRecs;
- global $currGDRec;
- global $arrLines;
- global $currLine;
- global $arrLineGDRecs;
- global $arrTempLineGDRecs;
- $s = $currGDRec->iBoxText;
- $c = strlen($s) + 1;
- $n = $sn + strlen($currLine->iReStr);
- $ss = strrev($currLine->iReStr) . $currLine->iStr;
- $nn = strlen($ss);
- if ($dr >= 0)
- {
- $fnd = FALSE;
- $i = $n-2;
- $cnt = 0;
- for ($k = $n; !$fnd ; $k++)
- {
- if ($k <= $nn-1)
- {
- $ch = substr($ss, $k, 1);
- if ($ch == " ")
- {
- $cnt++;
- }
- else
- {
- $i = $k;
- $cnt = 0;
- }
- if ($cnt >= $c)
- {
- $fnd = TRUE;
- break;
- }
- }
- else
- {
- $fnd = TRUE;
- break;
- }
- }
- $i = $i + 2 - strlen($currLine->iReStr);
- }
- if ($dr <= 0)
- {
- $fnd = FALSE;
- $ii = $n+2;
- $cnt = 0;
- for ($k = $n; !$fnd ; $k--)
- {
- if ($k >= 0 && $k <= $nn-1)
- {
- $ch = substr($ss, $k, 1);
- if ($ch == " ")
- {
- $cnt++;
- }
- else
- {
- $ii = $k;
- $cnt = 0;
- }
- if ($cnt >= $c)
- {
- $fnd = TRUE;
- break;
- }
- }
- else
- {
- $fnd = TRUE;
- break;
- }
- }
- $ii = $ii - 2 - strlen($currLine->iReStr);
- }
- if ($dr > 0)
- {
- $ii = $i + $c;
- }
- elseif ($dr < 0)
- {
- $i = $ii - $c;
- }
- else
- {
- if (abs($sn-$i) > abs($sn-$ii))
- {
- $i = $ii - $c;
- }
- else
- {
- $ii = $i + $c;
- }
- }
- $currLine->addBox($i,$s,$currGDRec->iSubLine>=1);
- $currLine->iRecs[$i]=$currGDRec->i;
- $arrGDRecs[$currGDRec->i]->iBoxC=$i + round(($c-1)/2-.3);
- $arrGDRecs[$currGDRec->i]->iBoxL=$i;
- $arrGDRecs[$currGDRec->i]->iBoxR=$i + $c;
- array_push($arrTempLineGDRecs , $currGDRec->i);
- array_push($arrLineGDRecs , $currGDRec->i);
- return($i);
- }
- function getSubC($i , $ii , $fn)
- {
- global $lastLine;
- global $c_RD;
- global $c_LD;
- global $c_UD;
- global $c_LRD;
- global $c_ud;
- global $c_lrd;
- global $c_LRud;
- global $c_Dlr;
- global $c_UDlr;
- if ($i == $ii)
- {
- return($i);
- }
- $c = round(($i + $ii)/2+.3);
- $j = -1;
- $n = -1;
- for ($k = $i; $k <= $ii; $k++)
- {
- $ch = $lastLine->getFChar($k);
- if ($ch < 0)
- {
- if ($n == -1 || abs($c-$k)<$n)
- {
- $j = $k;
- $n = abs($c-$k);
- }
- }
- }
- return($j);
- }
- function addLine($r , $b)
- {
- global $addedLine;
- global $arrLines;
- global $c_RD;
- global $c_LD;
- global $c_UD;
- global $c_LRD;
- global $c_ud;
- global $c_ld;
- global $c_rd;
- global $c_udl;
- global $c_udr;
- global $c_lrd;
- global $c_LRud;
- global $c_Dlr;
- global $c_UDlr;
- global $c_UDl;
- global $c_UDr;
- $addedLine = new gdLine();
- $addedLine->iIsBox = $b;
- if (count($arrLines)>0)
- {
- $prec = $arrLines[count($arrLines)-1];
- for ($rk = 0; $rk <= 1; $rk++)
- {
- if ($rk == 0)
- {
- $arr = $prec->iReChars;
- }
- else
- {
- $arr = $prec->iChars;
- }
- $cnt = count($arr);
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $pch = $arr[$k];
- $fn = $prec->getFChar($k);
- $ch = 0;
- if ($pch <= 0)
- {
- if ($pch == $c_ud || $pch == $c_ld || $pch == $c_rd || $pch == $c_lrd || $pch == $c_udl || $pch == $c_udr || $pch == $c_LRud)
- {
- $ch = $c_ud;
- }
- if ($pch == $c_UD || $pch == $c_LRD || $pch == $c_LD || $pch == $c_RD || $pch == $c_Dlr || $pch == $c_UDl || $pch == $c_UDr || $pch == $c_UDlr)
- {
- $ch = $c_UD;
- }
- if ($fn == -2 && $pch == $c_LRD)
- {
- $ch = $c_ud;
- }
- }
- if ($fn >= 0)
- {
- $addedLine->setFChar($k , $fn ,$prec->getRChar($k));
- }
- if ($rk == 0)
- {
- array_push($addedLine->iReChars , $ch);
- }
- else
- {
- array_push($addedLine->iChars , $ch);
- }
- }
- }
- }
- if ($r)
- {
- array_push($arrLines , $addedLine);
- }
- }
- function copyLine()
- {
- global $currLine;
- global $addedLine;
- $addedLine = new gdLine();
- $addedLine->iIsBox = $currLine->iIsBox;
- $arr = $currLine->iReChars;
- $cnt = count($arr);
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- array_push($addedLine->iReChars , $arr[$k]);
- }
- $arr = $currLine->iChars;
- $cnt = count($arr);
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- array_push($addedLine->iChars , $arr[$k]);
- }
- }
- function addSubLines($n,$i,$ii,$r,$rr,$en,$enn,$fn)
- {
- global $arrLines;
- global $arrGDRecs;
- global $gc;
- global $c_lu;
- global $c_ru;
- global $c_ud;
- global $c_lr;
- global $c_lrd;
- global $c_udl;
- global $c_udr;
- global $c_UD;
- $c = -1;
- for ($k = $n; $k <= count($arrLines)-1; $k++)
- {
- $rec = $arrLines[$k];
- $s = $rec->funcStr($i,$ii);
- $s = str_replace(chr(-$c_ud), "", $s);
- $s = str_replace(chr(-$c_UD), "", $s);
- $s = str_replace(" ", "", $s);
- if ($s = "")
- {
- $c = $k;
- break;
- }
- }
- if ($c == -1)
- {
- addLine(TRUE, FALSE);
- $c = count($arrLines)-1;
- }
- for ($k = $i; $k <= $ii; $k++)
- {
- $pch = $arrLines[$c]->getGDChar($k);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_lr;
- }
- elseif ($pch == $c_lrd)
- {
- }
- if ($k == $i)
- {
- $ch = $en ? $c_udr : $c_ru;
- }
- if ($k == $ii)
- {
- $ch = $enn ? $c_udl : $c_lu;
- }
- $arrLines[$c]->setGDChar($k, $ch);
- }
- for ($rk = 0; $rk <= 1; $rk++)
- {
- $j = ($rk == 0) ? $i : $ii;
- $nr = ($rk == 0) ? $r : $rr;
- for ($k = $c-1; $k > $nr ; $k--)
- {
- $pch = $arrLines[$k]->getGDChar($j);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_ud;
- }
- elseif ($pch == $c_lrd)
- {
- }
- $arrLines[$k]->setGDChar($j, $ch);
- }
- }
- $fndc = FALSE;
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if (in_array($fn, $rec->iUpF))
- {
- $fndc = TRUE;
- break;
- }
- }
- if ($fndc)
- {
- $cc = round(($i + $ii)/2+.3);
- $fnd = FALSE;
- for ($k = 0; !$fnd; $k++)
- {
- for ($rk = 0; $rk <= 1; $rk++)
- {
- $n = ($rk == 0) ? $cc+$k : $cc-$k;
- $pch = $arrLines[$c]->getGDChar($n);
- $ch = $pch;
- if ($pch == $c_lr || $pch == $c_ru || $pch == $c_udr || $pch == $c_lu || $pch == $c_udl || $pch == 0)
- {
- $arrLines[$c]->setFChar($n , $fn ,$c);
- $fnd = TRUE;
- break;
- }
- }
- }
- }
- }
- function addSubLine($n,$i,$r,$en,$fn)
- {
- global $arrLines;
- global $arrGDRecs;
- global $gc;
- global $c_lu;
- global $c_ru;
- global $c_ud;
- global $c_lr;
- global $c_lrd;
- global $c_udl;
- global $c_udr;
- global $c_UD;
- $c = $n;
- $fndc = FALSE;
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if (in_array($fn, $rec->iUpF))
- {
- $fndc = TRUE;
- break;
- }
- }
- if ($fndc)
- {
- $arrLines[$c]->setFChar($i , $fn ,$c);
- }
- }
- function addCLine($rei,$reii,$r,$fn)
- {
- global $arrLines;
- global $c_RD;
- global $c_LD;
- global $c_UD;
- global $c_LR;
- global $c_LRD;
- global $c_ud;
- global $c_lr;
- global $c_lrd;
- global $c_Dlr;
- if ($rei < $reii)
- {
- $i = $rei;
- $ii = $reii;
- }
- else
- {
- $i = $reii;
- $ii = $rei;
- }
- if ($i != $ii)
- {
- $c = -1;
- for ($k = $r; $k <= count($arrLines)-1; $k++)
- {
- $rec = $arrLines[$k];
- $s = $rec->funcStr($i,$ii);
- $s = str_replace(chr(-$c_ud), "", $s);;
- $s = str_replace(chr(-$c_UD), "", $s);;
- $s = str_replace(" ", "", $s);;
- if ($s = "")
- {
- $c = $k;
- break;
- }
- }
- if ($c == -1)
- {
- addLine(TRUE, FALSE);
- $c = count($arrLines)-1;
- }
- for ($j = $i; $j <= $ii; $j++)
- {
- $pch = $arrLines[$c]->getGDChar($j);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_LR;
- }
- elseif ($pch == $c_lrd)
- {
- }
- $arrLines[$c]->setGDChar($j, $ch);
- }
- }
- else
- {
- $c = $r;
- }
- $j = $rei;
- for ($k = $c-1; $k > $r ; $k--)
- {
- $pch = $arrLines[$k]->getGDChar($j);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_UD;
- }
- elseif ($pch == $c_lrd)
- {
- }
- $arrLines[$k]->setGDChar($j, $ch);
- }
- $pch = $arrLines[$r]->getGDChar($j);
- if ($pch == $c_lr)
- {
- $arrLines[$r]->setGDChar($j, $c_Dlr);
- }
- return($c);
- }
- function addSideLine($n,$i,$ii,$r,$rr,$en,$enn,$fn)
- {
- global $arrLines;
- global $arrGDRecs;
- global $gc;
- global $c_lu;
- global $c_ru;
- global $c_ud;
- global $c_lr;
- global $c_lrd;
- global $c_udl;
- global $c_udr;
- global $c_UD;
- $c = -1;
- return(FALSE);
- for ($k = $n; $k <= count($arrLines)-1; $k++)
- {
- $rec = $arrLines[$k];
- $s = $rec->funcStr($i,$ii);
- $s = str_replace(chr(-$c_ud), "", $s);
- $s = str_replace(chr(-$c_UD), "", $s);
- $s = str_replace(" ", "", $s);
- if ($s = "")
- {
- $c = $k;
- break;
- }
- }
- if ($c == -1)
- {
- addLine(TRUE, FALSE);
- $c = count($arrLines)-1;
- }
- for ($k = $i; $k <= $ii; $k++)
- {
- $pch = $arrLines[$c]->getGDChar($k);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_lr;
- }
- elseif ($pch == $c_lrd)
- {
- }
- if ($k == $i)
- {
- $ch = $en ? $c_udr : $c_ru;
- }
- if ($k == $ii)
- {
- $ch = $enn ? $c_udl : $c_lu;
- }
- $arrLines[$c]->setGDChar($k, $ch);
- }
- for ($rk = 0; $rk <= 1; $rk++)
- {
- $j = ($rk == 0) ? $i : $ii;
- $nr = ($rk == 0) ? $r : $rr;
- for ($k = $c-1; $k > $nr ; $k--)
- {
- $pch = $arrLines[$k]->getGDChar($j);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_ud;
- }
- elseif ($pch == $c_lrd)
- {
- }
- $arrLines[$k]->setGDChar($j, $ch);
- }
- }
- $fndc = FALSE;
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if (in_array($fn, $rec->iUpF))
- {
- $fndc = TRUE;
- break;
- }
- }
- if ($fndc)
- {
- $cc = round(($i + $ii)/2+.3);
- $fnd = FALSE;
- for ($k = 0; !$fnd; $k++)
- {
- for ($rk = 0; $rk <= 1; $rk++)
- {
- $n = ($rk == 0) ? $cc+$k : $cc-$k;
- $pch = $arrLines[$c]->getGDChar($n);
- $ch = $pch;
- if ($pch == $c_lr || $pch == $c_ru || $pch == $c_udr || $pch == $c_lu || $pch == $c_udl || $pch == 0)
- {
- $arrLines[$c]->setFChar($n , $fn ,$c);
- $fnd = TRUE;
- break;
- }
- }
- }
- }
- }
- function addUpLine($i,$ii,$iii,$iiii,$arr,$r)
- {
- global $arrLines;
- global $c_RD;
- global $c_LD;
- global $c_RU;
- global $c_LU;
- global $c_UD;
- global $c_LR;
- global $c_LRU;
- global $c_LRD;
- global $c_ud;
- global $c_ld;
- global $c_lu;
- global $c_rd;
- global $c_lr;
- global $c_lrd;
- global $c_lru;
- $c = count($arrLines)-1;
- ///$arrLines[$c]->setFChar($i , -1 ,-1);
- if ($iii != $iiii)
- {
- for ($j = $iii; $j <= $iiii; $j++)
- {
- $pch = $arrLines[$c]->getGDChar($j);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_LR;
- }
- elseif ($pch == $c_lrd)
- {
- $ch = $c_LR;
- }
- $arrLines[$c]->setGDChar($j, $ch);
- }
- }
- $rr = count($arrLines);
- for ($kk = 0; $kk <= count($arr)-1; $kk++)
- {
- $k = $arr[$kk];
- if ($iii != $iiii)
- {
- $arrLines[$c]->setGDChar($k, $c_LRD);
- }
- else
- {
- $arrLines[$c]->setGDChar($k, $c_UD);
- }
- for ($j = $c+1; $j < $rr ; $j++)
- {
- $pch = $arrLines[$j]->getGDChar($k);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_UD;
- }
- elseif ($pch == $c_lrd)
- {
- $ch = $c_LRD;
- }
- $arrLines[$j]->setGDChar($k, $ch);///
- }
- }
- $j = $ii;
- for ($k = $c-1; $k > $r ; $k--)
- {
- $pch = $arrLines[$k]->getGDChar($j);
- $ch = $pch;
- if ($pch == 0)
- {
- $ch = $c_UD;
- }
- elseif ($pch == $c_lrd)
- {
- $ch = $c_UD;
- }
- $arrLines[$k]->setGDChar($j, $ch);///
- }
- if ($i != $ii)
- {
- $arrLines[$r]->setGDChar($i, (($i > $ii) ? $c_LU : $c_RU));
- $arrLines[$r]->setGDChar($ii, (($i > $ii) ? $c_RD : $c_LD));
- }
- if ($iii != $iiii)
- {
- if (count($arr)>1)
- {
- $arrLines[$c]->setGDChar($ii, $c_LRU);///
- }
- $arrLines[$c]->setGDChar($iii, $c_RD);
- $arrLines[$c]->setGDChar($iiii, $c_LD);
- }
- return;
- }
- ///---------------------------------------------------------------------------------------------
- ///---------------------------------------------------------------------------------------------
- ///---------------------------------------------------------------------------------------------
- ///---------------------------------------------------------------------------------------------
- ///---------------------------------------------------------------------------------------------
- ///---------------------------------------------------------------------------------------------
- ///---------------------------------------------------------------------------------------------
- $arrGDRecs = array();
- $narrow =array();
- $gc = 0;
- $arrFileRecs = split($gd_line_delim, $gdFileStr);
- $cnt = count($arrFileRecs);
- for ($i = 0; $i <= $cnt-1; $i++)
- {
- $s = trim($arrFileRecs[$i]);
- if ($s=="")
- {
- continue;
- }
- $arrLineRecs = split($gd_delim, $s);
- $c = count($arrLineRecs);
- $rec = new gdRec();
- $j = 0;
- ///-------------------------------
- if ($c>0)
- {
- $s = trim($arrLineRecs[0]);
- while ($c > 0 && $s == "")
- {
- $s = trim(array_shift($arrLineRecs));$c--;
- $s = trim($arrLineRecs[0]);
- }
- }
- ///----
- if ($c>0)
- {
- $s = trim(array_shift($arrLineRecs));$c--;
- if (!ereg($gd_level,funcreg($s)))
- {
- ///continue;
- }
- $rec->iLevel = (int) $s;
- }
- ///-------------------------------
- if ($c>0)
- {
- $s = trim($arrLineRecs[0]);
- while ($c > 0 && $s == "")
- {
- $s = trim(array_shift($arrLineRecs));$c--;
- $s = trim($arrLineRecs[0]);
- }
- }
- ///----
- if ($c>0)
- {
- $s = trim($arrLineRecs[0]);
- if (ereg($gd_pointer," ".$s." "))
- {
- $s = trim(array_shift($arrLineRecs));$c--;
- $rec->iRef = $s;
- }
- else
- {
- }
- }
- ///-------------------------------
- if ($c>0)
- {
- $s = trim($arrLineRecs[0]);
- while ($c > 0 && $s == "")
- {
- $s = trim(array_shift($arrLineRecs));$c--;
- $s = trim($arrLineRecs[0]);
- }
- }
- ///----
- if ($c>0)
- {
- $s = trim(array_shift($arrLineRecs));$c--;
- $rec->iTag = $s;
- }
- ///-------------------------------
- if ($c>0)
- {
- $s = join(" ", $arrLineRecs);
- $rec->iVal = ltrim($s);
- }
- ///-------------------------------
- array_push($arrGDRecs, $rec);
- $gc++;
- }
- for ($rk = 0; $rk <= $gc-1; $rk++)
- {
- $arrGDRecs[$rk]->i = $rk;
- }
- $naid=0;
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- $arr = array();
- for ($n = $k+1 ; $n <= $gc-1; $n++)
- {
- $crec = $arrGDRecs[$n];
- if ($crec->iLevel <= $rec->iLevel )
- {
- break;
- }
- if ($crec->iTag == "NAME")
- {
- $arrGDRecs[$k]->iText = $crec->iVal;
- $s="".$arrGDRecs[$k]->iText."";
- $naid++;
- $nasid="".$naid;
- $nalen=strlen($nasid);
- $nast='NA'.(substr('000'.$naid,$nalen,3));
- $narrow[$naid].="$s";
- $s=$nast;
- //$sle=strlen($s)/2;
- //$spc=substr(' ',0,$sle);
- //$s=$spc.$s.$spc;
- $c = strlen($s);
- if ($c > 20 )
- {
- $s=substr($s, 0, 20);
- }
- $c = strlen($s);
- if ($c%2 == 0)
- {
- $s=$s." ";
- }
- $s=" ".$s." ";
- $arrGDRecs[$k]->iBoxText=$s;
- $arrGDRecs[$k]->iBoxLen=(strlen($s)*2);
- }
- if ($crec->iLevel == $rec->iLevel+1 )
- {
- array_push($arr , $n);
- }
- }
- $arrGDRecs[$k]->iChilds = $arr;
- }
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if ($rec->iTag == "FAM")
- {
- $arr = $rec->iChilds;
- $cnt = count($arr);
- for ($n = 0; $n <= $cnt-1; $n++)
- {
- $crec = $arrGDRecs[$arr[$n]];
- if ($crec->iTag == "HUSB" || $crec->iTag == "WIFE")
- {
- $i=findByRef($crec->iVal);
- if ($i>= 0)
- {
- $arrGDRecs[$i]->iSubLine++;
- array_push($arrGDRecs[$i]->iSubF , $k);
- }
- }
- if ($crec->iTag == "CHIL")
- {
- $i=findByRef($crec->iVal);
- if ($i>= 0)
- {
- array_push($arrGDRecs[$i]->iUpF , $k);
- }
- }
- }
- }
- }
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if ($rec->iTag == "INDI")
- {
- findChilds($n);
- }
- }
- $maxLevel = 0;
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if ($rec->iTag == "INDI")
- {
- findLevel($k);
- }
- }
- clearTags();
- $arrGDLevels = array();
- for ($n = 0; $n <= $maxLevel; $n++)
- {
- $arr = array();
- if ($n > 0)
- {
- for ($rk = 0; $rk <= count($arrp)-1; $rk++)
- {
- $prec = $arrGDRecs[$arrp[$rk]];
- for ($k = 0; $k <= count($prec->iArrSub)-1; $k++)
- {
- $c = $prec->iArrSub[$k];
- $rec = $arrGDRecs[$c];
- if ($rec->iTag == "INDI")
- {
- if ($rec->iAdded == -1 && $rec->iArrLevel == $n)
- {
- $arrGDRecs[$c]->iAdded = 4;
- array_push($arr , $c);
- }
- }
- }
- }
- }
- for ($k = 0; $k <= $gc-1; $k++)
- {
- $rec = $arrGDRecs[$k];
- if ($rec->iTag == "INDI")
- {
- if ($rec->iAdded == -1 && $rec->iArrLevel == $n)
- {
- array_push($arr , $k);
- }
- }
- }
- array_push($arrGDLevels , $arr);
- $arrp = $arr;
- }
- $addedLine = new gdLine();
- $arrLines = array();
- addLine(TRUE ,FALSE);
- $arrLineGDRecs = array();
- for ($rk = 0; $rk <= count($arrGDLevels)-1; $rk++)
- {
- $arrTempLineGDRecs = array();
- $arrp = $arrGDLevels[$rk];
- $cnt = count($arrp);
- addLine(FALSE ,TRUE);
- $currLine = $addedLine;
- clearTags();
- if ($rk == 0)
- {
- $sn = 0;
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- $currGDRec = $arrGDRecs[$arrp[$k]];
- $sn = addBox($sn , 1);
- $currLine->funcStr(FALSE, -1);
- }
- }
- else
- {
- $arr = array();
- $lastLine = $arrLines[count($arrLines)-1];
- $fc = count($arrFs);
- $dr = 1;
- $lsn = 0;
- $rsn = 0;
- for ($fkk = 0; $fkk <= $fc-1; $fkk++)
- {
- $dr *= -1;
- $fk = $arrFs[$fkk];
- $fn = $lastLine->getFChar($fk);
- $r = $lastLine->getRChar($fk);
- $srec = new subRec();
- $srec->iVal = $fn;
- $srec->iFrom = $fk;
- $srec->iFromR = $r;
- for ($j = 0; $j <= $cnt-1; $j++)
- {
- $jj = $arrp[$j];
- $currGDRec = $arrGDRecs[$jj];
- if ($currGDRec->iAdded == -1 && in_array($fn, $currGDRec->iUpF))
- {
- $arrGDRecs[$jj]->iAdded = $fn;
- array_push($srec->iArr , $jj);
- }
- }
- if ($fkk == 0)
- {
- $idr = 1;
- for ($j = 0; $j <= count($srec->iArr)-1; $j++)
- {
- $idr *= -1;
- $jj = $srec->iArr[$j];
- $currGDRec = $arrGDRecs[$jj];
- if ($j == 0)
- {
- if (count($srec->iArr) % 2 == 0)
- {
- $csn = $fk+1;
- $idr = 1;
- }
- else
- {
- $csn = $fk-floor(strlen($currGDRec->iBoxText)/2); // /2 kiszedve
- $idr = -1;
- }
- $sn = addBox($csn,0);
- $rsn = $sn + strlen($currGDRec->iBoxText);
- $lsn = $sn;
- }
- elseif ($idr > 0)
- {
- $rsn = addBox($rsn,$idr) + strlen($currGDRec->iBoxText); // +
- }
- else
- {
- $lsn = addBox($lsn,$idr)-1;
- }
- $ce = $arrGDRecs[$jj]->iBoxC;
- $srec->iArr[$j] = $ce;
- if ($j == 0)
- {
- $i = $ce;
- $ii = $ce;
- }
- $i = min($i , $ce) ;
- $ii = max($ii , $ce);
- }
- }
- else
- {
- for ($j = 0; $j <= count($srec->iArr)-1; $j++)
- {
- $jj = $srec->iArr[$j];
- $currGDRec = $arrGDRecs[$jj];
- if ($dr > 0)
- {
- $rsn = addBox($rsn,$dr) + strlen($currGDRec->iBoxText);
- }
- else
- {
- $lsn = addBox($lsn,$dr)-1;
- }
- $ce = $arrGDRecs[$jj]->iBoxC;
- $srec->iArr[$j] = $ce;
- if ($j == 0)
- {
- $i = $ce;
- $ii = $ce;
- }
- $i = min($i , $ce) ;
- $ii = max($ii , $ce);
- }
- }
- if (count($srec->iArr) > 0)
- {
- $srec->iBoxL = $i;
- $srec->iBoxR = $ii;
- $srec->iBoxC = getSubC($i , $ii , $fn);
- ///trace(" { { {");
- ///trace($i);
- ///trace($ii);
- $srec->iBoxCR = addCLine($fk,$srec->iBoxC,$r,$fn);
- }
- array_push($arr , $srec);
- }
- addLine(TRUE ,FALSE);
- $fndarr = FALSE;
- for ($k = 0; $k <= count($arr)-1; $k++)
- {
- $srec = $arr[$k];
- if (count($srec->iArr) > 0)
- {
- $fndarr = $fndarr || (count($srec->iArr) > 1);
- addUpLine($srec->iFrom,$srec->iBoxC,$srec->iBoxL,$srec->iBoxR,$srec->iArr,$srec->iBoxCR);
- }
- }
- if ($fndarr)
- {
- addLine(TRUE ,FALSE);
- }
- }
- for ($j = 0; $j <= $cnt-1; $j++)
- {
- $jj = $arrp[$j];
- $currGDRec = $arrGDRecs[$jj];
- $arrGDRecs[$currGDRec->i]->iBoxLine=count($arrLines);
- }
- array_push($arrLines , $currLine);
- addLine(TRUE, FALSE);
- for ($k = 0; $k <= count($arrTempLineGDRecs)-1; $k++)
- {
- $rec = $arrGDRecs[$arrTempLineGDRecs[$k]];
- for ($kk = 0; $kk <= count($arrLineGDRecs)-(count($arrTempLineGDRecs)-$k)-1; $kk++)
- {
- $prec = $arrGDRecs[$arrLineGDRecs[$kk]];
- if ($rec->i != $prec->i)
- {
- if (findInArr($rec->iSubF,$prec->iSubF))
- {
- $fn = $rec->iSubF[$foundIndex];
- if ($rec->iBoxC > $prec->iBoxC)
- {
- $fnd = addSideLine(max($prec->iBoxLine,$rec->iBoxLine)+1,$prec->iBoxC,$rec->iBoxC,$prec->iBoxLine,$rec->iBoxLine,$prec->iSubLine>1,$rec->iSubLine>1,$fn);
- }
- else
- {
- $fnd = addSideLine(max($rec->iBoxLine,$prec->iBoxLine)+1,$rec->iBoxC,$prec->iBoxC,$rec->iBoxLine,$prec->iBoxLine,$rec->iSubLine>1,$prec->iSubLine>1,$fn);
- }
- if (!$fnd)
- {
- if ($rec->iBoxC > $prec->iBoxC)
- {
- addSubLines(max($prec->iBoxLine,$rec->iBoxLine)+1,$prec->iBoxC,$rec->iBoxC,$prec->iBoxLine,$rec->iBoxLine,$arrGDRecs[$prec->i]->iSubLine>1,$arrGDRecs[$rec->i]->iSubLine>1,$fn);
- }
- else
- {
- addSubLines(max($rec->iBoxLine,$prec->iBoxLine)+1,$rec->iBoxC,$prec->iBoxC,$rec->iBoxLine,$prec->iBoxLine,$arrGDRecs[$rec->i]->iSubLine>1,$arrGDRecs[$prec->i]->iSubLine>1,$fn);
- }
- }
- $arrGDRecs[$rec->i]->iSubLine--;
- $arrGDRecs[$prec->i]->iSubLine--;
- }
- }
- }
- for ($kk = 0; $kk <= count($rec->iSubF)-1; $kk++)
- {
- if ($arrGDRecs[$rec->i]->iSubLine <= 0)
- {
- ///break;
- }
- $fn = $rec->iSubF[$kk];
- $fnd = FALSE;
- for ($kkk = 0; $kkk <= $gc-1; $kkk++)
- {
- if ($kkk != $rec->i)
- {
- $prec = $arrGDRecs[$kkk];
- if (in_array($fn, $prec->iSubF))
- {
- $fnd = TRUE;
- break;
- }
- }
- }
- if (!$fnd)
- {
- addSubLine($rec->iBoxLine+1,$rec->iBoxC,$rec->iBoxLine,$arrGDRecs[$rec->i]->iSubLine>1,$fn);
- $arrGDRecs[$rec->i]->iSubLine--;
- }
- }
- }
- $currLine = $arrLines[count($arrLines)-1];
- $i = -count($currLine->iReChars) ;
- $ii = count($currLine->iChars)-1 ;
- $cnt = 0;
- for ($k = $i; $k <= $ii; $k++)
- {
- if ($currLine->getFChar($k) >= 0)
- {
- $cnt ++;
- }
- }
- $c = 0;
- for ($k = $i; $k <= $ii; $k++)
- {
- if ($currLine->getFChar($k) >= 0)
- {
- $n = $k;
- if ($c == round($cnt/2-.3))
- {
- break;
- }
- $c ++;
- }
- }
- $arrFs = array();
- for ($k = 0; $k <= $cnt-1; $k++)
- {
- array_push($arrFs , -1);
- }
- $arrFs[0] = $n;
- $c = 0;
- for ($k = $n+1; $k <= $ii; $k++)
- {
- if ($currLine->getFChar($k) >= 0)
- {
- $arrFs[$c*2+1] = $k;
- $c ++;
- }
- }
- $c = 0;
- for ($k = $n-1; $k >= $i; $k--)
- {
- if ($currLine->getFChar($k) >= 0)
- {
- $arrFs[$c*2+2] = $k;
- $c ++;
- }
- }
- }
- addLine(TRUE ,FALSE);
- $arrFinal = array();
- for ($rk = 0; $rk <= count($arrLines)-1; $rk++)
- {
- $currLine = $arrLines[$rk];
- if ($currLine->iIsBox)
- {
- for ($j = 0; $j <= 2; $j++)
- {
- copyLine();
- $i = -count($currLine->iReChars) ;
- $ii = count($currLine->iChars) ;
- for ($k = $i; $k <= $ii-1; $k++)
- {
- $ch = $currLine->getGDChar($k);
- $fch = $currLine->getFChar($k);
- $rch = $currLine->getRChar($k);
- if ($fch == -2)
- {
- $nch = $rch;
- if ($j == 0)
- {
- $pch = $arrLines[$rk-1]->getGDChar($k);
- if ($ch == $c_RU)
- {
- $nch = $c_RD;
- }
- elseif ($ch == $c_LU)
- {
- $nch = $c_LD;
- }
- elseif ($ch <= 0)
- {
- if ($pch == $c_UD || $pch == $c_LRD || $pch == $c_LD || $pch == $c_RD)
- {
- $nch = $c_LRU;
- }
- else
- {
- $nch = $c_LR;
- }
- }
- }
- elseif ($j == 1)
- {
- ksort($currLine->iRecs);
- $arrv = array_values($currLine->iRecs);
- for ($rv = 0; $rv <= count($arrv)-1; $rv++)
- {
- }
- if ($ch == $c_RU || $ch == $c_LU)
- {
- $nch = $c_UD;
- }
- else
- {
- }
- }
- else
- {
- $pch = $arrLines[$rk+1]->getGDChar($k);
- if ($ch == $c_RU)
- {
- $nch = $c_RU;
- }
- elseif ($ch == $c_LU)
- {
- $nch = $c_LU;
- }
- elseif ($ch <= 0)
- {
- if ($pch == $c_ud || $pch == $c_lrd || $pch == $c_ld || $pch == $c_rd)
- {
- $nch = $c_LRD;
- }
- else
- {
- $nch = $c_LR;
- }
- }
- }
- $addedLine->setGDChar($k , $nch);
- }
- }
- array_push($arrFinal , $addedLine);
- }
- }
- else
- {
- copyLine();
- array_push($arrFinal , $addedLine);
- }
- }
- array_shift($arrLines);
- array_pop($arrLines);
- array_pop($arrLines);
- $txt=traceLines(TRUE);///
- $stxt="";
- //$stxt=str_replace(" "," |",$txt);
- $srows=split("\n", $txt);
- $k=0;
- foreach ($srows as $srow)
- {
- $k++;
- $psrow="";
- $pend=strlen($srow);
- $pos=0;
- while($pos<$pend)
- {
- $ca=substr($srow,$pos,2);
- $pos=$pos+2;
- if ($ca==" ") $ca=" |";
- if ($ca=="- ") $ca="-|";
- if ($ca==" -") $ca="-|";
- if ($ca=="! ") $ca="!|";
- if ($ca==" !") $ca="!|";
- if ($ca==": ") $ca=":|";
- if ($ca==" :") $ca=":|";
- if ($ca=="~:") $ca=":~";
- if ($ca=="-:") $ca=":-";
- if ($ca=="~J") $ca="J|";
- if ($ca==" ,") $ca=",-";
- if ($ca==" L")
- {
- if ( substr($srow,$pos,1)=='~' )
- $ca="L~";
- }
- if ($ca=="-v") $ca="v-";
- if ($ca=="~y") $ca="y~";
- if ($ca=="-^") $ca="^-";
- if ($ca=="-'") $ca="'|";
- if ($ca=="-.") $ca=".|";
- if ($ca==". ") $ca=".|";
- if ($ca=="' ") $ca="'|";
- if ($ca=="--") $ca="-|";
- if ($ca=="~~") $ca="~|";
- if ($ca=="y~") $ca="y|";
- if ($ca=="L~") $ca="L|";
- if ($ca==",-") $ca=",|";
- if ($ca=="v-") $ca="v|";
- if ($ca=="`-") $ca="`|";
- if ($ca==":-") $ca=":|";
- if ($ca==":~") $ca=":|";
- if ($ca=="J ") $ca="J|";
- if ($ca=="^-") $ca="^|";
- $psrow.=$ca;
- }
- $psrow=str_replace(' |!:','!|:|',$psrow);
- $psrow=str_replace('--.:','.|:|',$psrow);
- $namese="|";
- for ($cikl=1;$cikl<=count($narrow);$cikl++)
- {
- $nasid="".$cikl;
- $nalen=strlen($nasid);
- $nast='NA'.(substr('000'.$cikl,$nalen,3));
- if (strpos($psrow,$nast)>0)
- {
- if (strpos($psrow," ".$nast)>0)
- $psrow=str_replace(" ".$nast," | |".$nast."| |",$psrow);
- else
- $psrow=str_replace("|".$nast,"| | |".$nast."| |",$psrow);
- if ($namese!="|") $namese.="|";
- $namese.=$nast."=[[".$narrow[$cikl]."]]";
- }
- }
- $namese.="}}";
- if ($k>1) $psrow=str_replace("}}",$namese,$psrow);
- $srows[$k-1]=$psrow;
- }
- $k=0;
- foreach ($srows as $srow)
- {
- $k++;
- $pos=0;$pend=strlen($srow);
- while($pos<$pend)
- {
- $pos++;
- if (substr($srow,$pos,1)==":")
- {
- if (substr($srows[$k],$pos,1)==" ")
- {
- $srows[$k]=substr_replace($srows[$k],":",$pos,1);
- }
- }
- }
- $stxt.=$srows[$k-1]."\n";
- }
- print_r($stxt);
- ///trace("converted : [".$gdFile."] => [tree.txt] , [treeTemp.txt] and [treeChars.txt]");
- ///array_shift($arrFinal);
- ///array_pop($arrFinal);
- ///traceFinal();
- ?>
- </textarea>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement