continuacion
  Código PHP:
        $field_header = array('TgrpA', 'TgrpB', 'Duracion'); // note 3
 
    // Creates the view to display the list store
    $view = new GtkTreeView($model); // note 4
    $scrolled_win->add($view); // note 5
 
     // Creates columns
    for ($col=0; $col<count($field_header); $col++) {
        $cell_renderer = new GtkCellRendererText();
        $column = new GtkTreeViewColumn($field_header[$col],
            $cell_renderer, 'text', $col);
        $view->append_column($column);
    }
 
    //pupulates the data
 
 
     for ($row=0; $row<count($data); $row++) {
        $values = array();
        for ($col=0; $col<count($data[$row]); ++$col) {
            $values[] = $data[$row][$col];
 
        }
        $model->append($values); // note 6
        //print_r (array_values($values));
    }
 
 
}
 
 
class entel extends base_module {
    function setup($vbox) {
        $this->dialog->set_size_request(800, 600);
        $title = new GtkLabel("Entel 2");
        $vbox->pack_start($title, 0, 0);
        $vbox->pack_start(new GtkLabel(), 0, 0);
        $flat_file_db = 'C:\Users\Nat\Desktop\proyectoGTK\php-gtk2\en-2-2.txt'; // note 1
        $handle = @fopen($flat_file_db, "r");
 
        //array entel 2
        $array_TgrpA = array();
        $array_TgrpB = array();
        $array_Nadi142 = array();
        $array_Fecha = array();
        $array_Hora = array();
        $array_Durac = array();
        $array_NadiB = array();
        $array_number = array();
        if ($handle) {
        while (!feof($handle)) {
        $buffer = fgets($handle);
                   $TgrpA = substr("$buffer",1, 6);
                   $TgrpB = substr("$buffer",7, 7);
                   $Nadi142 = substr("$buffer",30, 9);
                   $Fecha = substr("$buffer",80, 8);
                   $Hora = substr("$buffer",89, 8);
                   $Durac = substr("$buffer",98, 5);
                   $NadiB = substr("$buffer",107, 15);
                   $number = substr("$buffer", 107, 3);
 
    array_push($array_TgrpA, $TgrpA);
    array_push($array_TgrpB, $TgrpB);
    array_push($array_Nadi142, $Nadi142);
    array_push($array_Fecha, $Fecha);
    array_push($array_Hora, $Hora);
    array_push($array_Durac, $Durac);
    array_push($array_NadiB, $NadiB);
    array_push($array_number, $number);
 
                 }
    $data = array($array_TgrpA,
        $array_TgrpB,
        $array_Durac);
 
    //numbers
    $array_count_number = array_count_values($array_number); // muestra cuantas veces se repite el mismo valor
    $array_keys_number = array_keys($array_count_number);   // muestra las llaves de los numeros buscados con $array_count_number
   /*
    //TgrpA
    $array_count_TgrpA = array_count_values($array_TgrpA);
    $array_keys_TgrpA = array_keys($array_count_TgrpA);
    //TgrpB
    $array_count_TgrpB = array_count_values($array_TgrpB);
    $array_keys_TgrPB = array_keys($array_count_TgrpB);*/
 
 
 
function obtenerUbicacionIguales($NumeroIndice, $array_number)
{
    $resultado = array();
    for($i = 0; $i < count($array_number); $i++)
        if($array_number[$i] == $NumeroIndice) // Si el numero indice buscado es igual al indice en la posicion actual
            $resultado[] = $i; // Agregar la posicion / ubicacion en el resultado.
    return $resultado;
}
 
 
//OBTENER VALORES 1
function obtenerValoresTgrpA($NumeroIndice, $array_number, $array_TgrpA)
{
    $resultado = array();
    for($i = 0; $i < count($array_number); $i++)
        if($array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            $resultado[] = $array_TgrpA[$i]; // Agregar la palabra correspondiente en el resultado.
    return $resultado;
}
 
function obtenerValoresTgrpB($NumeroIndice, $array_number, $array_TgrpB)
{
    $resultado = array();
    for($i = 0; $i < count($array_number); $i++)
        if($array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            $resultado[] = $array_TgrpB[$i]; // Agregar la palabra correspondiente en el resultado.
    return $resultado;
}
 
function obtenerValoresNadi142($NumeroIndice, $array_number, $array_Nadi142)
{
    $resultado = array();
    for($i = 0; $i < count($array_number); $i++)
        if($array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            $resultado[] = $array_Nadi142[$i]; // Agregar la palabra correspondiente en el resultado.
    return $resultado;
}
 
function obtenerValoresNadiB($NumeroIndice, $array_number, $array_NadiB)
{
    $resultado = array();
    for($i = 0; $i < count($array_number); $i++)
        if($array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            $resultado[] = $array_NadiB[$i]; // Agregar la palabra correspondiente en el resultado.
    return $resultado;
}
 
function obtenerValoresDurac($NumeroIndice, $array_number, $array_Durac)
{
    $resultado = array();
    for($i = 0; $i < count($array_number); $i++)
        if($array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            $resultado[] = $array_Durac[$i]; // Agregar la palabra correspondiente en el resultado.
    return $resultado;
}
 
// FIN OBTENER VALORES1
 
       display_table($vbox, $data);
                 }
    }
}
 
class softswitch extends base_module {
    function setup($vbox) {
        $this->dialog->set_size_request(800, 600);
        $vbox->pack_start(new GtkLabel(get_class($this)));
    }
}
 
 
 
class main extends base_module {
    function setup($vbox) {
        //define menu definition
        $menu_definition = array(
        '_Archivo' => array('_Cerrar'),
        '_Aplicaciones' => array( 'Entel', 'SoftSwitch')
        );
        $this->setup_menu($vbox, $menu_definition);
        $vbox->pack_start(new GtkLabel('Menu Principal'));
 
 
    }
 
    // shows the buttons at bottom of windows only for main_menu
    function show_buttons($vbox) {
        global $modules;
        $hbox = new GtkHBox();
        $vbox->pack_start($hbox, 0, 0);
        $hbox->pack_start(new GtkLabel());
        foreach($this->main->modules as $module) {
            if ($module=='main') continue; // skip the main_menu button
            $button = new GtkButton(strtoupper(substr($module,0,1)).substr($module,1)); // cap 1st letter
            $button->set_size_request(80, 32); // makes all button the same size
            if ($module == get_class($this)) { // sets the color of the respective button
                $button->modify_bg(Gtk::STATE_NORMAL, GdkColor::parse("#95DDFF"));
                $button->modify_bg(Gtk::STATE_ACTIVE, GdkColor::parse("#95DDFF"));
                $button->modify_bg(Gtk::STATE_PRELIGHT, GdkColor::parse("#95DDFF"));
            }
            $hbox->pack_start($button, 0, 0);
            $hbox->pack_start(new GtkLabel());
            $button->connect('clicked', array(&$this->main,'on_clicked'), $module); // event handler to handle button click
        }
    }
 
    // setup menu
    function setup_menu($vbox, $menus) {
        $menubar = new GtkMenuBar();
        $vbox->pack_start($menubar, 0, 0);
        foreach($menus as $toplevel => $sublevels) {
            $menubar->append($top_menu = new GtkMenuItem($toplevel));
            $menu = new GtkMenu();
            $top_menu->set_submenu($menu);
            foreach($sublevels as $submenu) {
                if ($submenu=='<hr>') {
                    $menu->append(new GtkSeparatorMenuItem());
                } else {
                    $menu->append($menu_item = new GtkMenuItem($submenu));
                    $menu_item->connect('activate', array(&$this->main, 'on_menu_select'));
                }
            }
        }
    }
}
 
?>