Subversion Repositories portal2

Rev

Rev 584 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

/*  emg - Energy Monitoring & Graphing
*  Copyright (C) 2006-2012 Romain Lievin
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 3 of the License, or
*  (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software Foundation,
*  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

?>

<div id="page_sql2txt">
        <h1>
                MyTXT to CSV (for SQLite) export
        </h1>

        <?php

        function parse_folder($folder)
        {
                try
                {
                        $out = fopen('DB/DATA/' . $folder . '.CSV', 'wt');
                }
                catch(Exception $e)
                {
                        trigger_error('File error : ' . $e->getErrorReport(), E_USER_WARNING);
                }
                $index    = 0;

                $iterator = new DirectoryIterator('DB/DATA/' .  $folder);
                foreach($iterator as $fileinfo)
                {
                        if($fileinfo->isFile())
                        {
                                $filename = $fileinfo->getFilename();

                                if($filename == '.' || $filename == '..')
                                continue;

                                $filename = $fileinfo->getFilename();
                                echo $filename;
                                echo '<br/>';

                                try
                                {
                                        $in = fopen('DB/DATA/' . $folder . '/' . $filename, 'rt');
                                }
                                catch(Exception $e)
                                {
                                        trigger_error('File error : ' . $e->getErrorReport(), E_USER_WARNING);
                                }

                                while(!feof($in))
                                {
                                        $line = fgets($in);

                                        $cols = preg_split("/[|]/", $line);
                                        //print_r($cols); echo " < br />";
                                        // remove leading and trailing ' | '
                                        array_shift($cols);
                                        array_pop($cols);
                                        //print_r($cols); echo " < br />";
                                        if(count($cols) == 0)
                                        continue;

                                        if(count($cols) == 11)
                                        array_pop($cols);

                                        $str = '';
                                        $str .= $index++;
                                        $str .= ',';

                                        $date = reset($cols);
                                        //echo $date;
                                        //echo ' < br/>';
                                        $time = next($cols);
                                        //echo $time;
                                        //echo ' < br/>';

                                        $tz   = new DateTimeZone('Europe/Paris');
                                        $dt   = new DateTime($date . ' ' . $time, $tz);
                                        //var_dump($dt->getTimestamp());
                                        //echo $dt->format('U');
                                        //echo ' < br/>';

                                        $str .= $dt->format('U');
                                        //$str .= $date . $time;
                                        $str .= ',';

                                        // add EDF:OPTARIF
                                        //$str .= '1,';

                                        $j = 0;
                                        foreach($cols as $key => $elt)
                                        {
                                                if($key == 0 || $key == 1)      continue;

                                                $elt = trim($elt);

                                                if($elt == 'X')
                                                {
                                                        $str .= ',';
                                                }
                                                else
                                                {
                                                        $str .= $elt;
                                                        $str .= ',';
                                                }
                                                $j++;
                                        }

                                        //echo $j; echo ' < br/>';
                                        for($k = $j; $k < 8; $k++)
                                        {
                                                $str .= '0,';
                                        }

                                        //$str = rtrim($str, ',');
                                        $str = substr($str, 0, - 1);
                                        $str .= "\r";

                                        fputs($out, $str);

                                }
                                fclose($in);
                        }
                }

                fclose($out);
        }

        //parse_folder('century');
        //parse_folder('year');
        //parse_folder('month');
        parse_folder('day');

        ?>

</div>