hi,
im now trying two days to find a way how to parse pd patch files, today i found about "recursive functions" and think that would be the solution...
but as im not a good coder i cant really modify the "recursive directory listing" code examples that i found through google....
http://www.zend.com/zend/art/recursion.php $delim = strstr(PHP_OS, "WIN") ? "\" : "/"; function retrieveTree($path) { global $delim; if ($dir=@opendir($path)) { while (($element=readdir($dir))!== false) { if(is_dir($path.$delim.$element) && $element!= "." && $element!= "..") { $array[$element] = retrieveTree($path.$delim.$element); }elseif ($element!= "." && $element!= "..") { $array[] = $element; } } closedir($dir); } return (isset($array) ? $array : false); }
but i think i found out how the array should look like:
this is the pd patch file: (line numbers are used for better visualisation) 01#N canvas 667 88 332 225 10; 02#X text 21 13 cid0; 03#N canvas 408 254 450 300 cid1 0; 04#N canvas 0 0 450 300 cid1 0; 05#X text 9 6 cid0; 06#X restore 18 30 pd cid1; 07#X text 17 8 cid0; 08#X restore 22 31 pd cid1; 09#N canvas 473 157 450 300 cid2 0; 10#X text 16 16 cid0; 11#X restore 116 31 pd cid2; 12#N canvas 0 0 450 300 cid3 0; 13#X text 14 11 cid0; 14#X restore 203 30 pd cid3;
and this would be the array: Array( [canvas0] => Array( [0] => 01#N canvas 667 88 332 225 10; [1] => 02#X text 21 13 cid0; [canvas1] => Array( [0] => 03#N canvas 408 254 450 300 cid1 0; [canvas2] => Array( [0] => 04#N canvas 0 0 450 300 cid1 0; [1] => 05#X text 9 6 cid0; ) [1] => 06#X restore 18 30 pd cid1; [2] => 07#X text 17 8 cid0; ) [2] => 08#X restore 22 31 pd cid1; [canvas3] => Array( [0] => 09#N canvas 473 157 450 300 cid2 0; [1] => 10#X text 16 16 cid0; ) [3] => 11#X restore 116 31 pd cid2; [canvas4] => Array( [0] => 12#N canvas 0 0 450 300 cid3 0; [1] => 13#X text 14 11 cid0; ) [4] => 14#X restore 203 30 pd cid3; ) )
well, im not sure if that array is correct. i did it manually :) and i havent even tested if i can then use that array the way i like, but as im stuck on this parsing problem i desided not to test further until i get this to work....
and maybe my array "design" is not so good anyway...
so, i wanted to ask you what would be the best way to parse pd files ?
im pretty sure i can do all other things (object drawing, connections) alone, just this parsing thing gives me headache...
cheers andre
ps. why i do this ? i wanted to display pd patches using "canvas" in firefox 1.5...