Les doublons dans excel

Deux petites fonctions bien pratiques sur Excel en macro pour sortir la liste des non doublons d'un colonne et la liste des doublons

Sub nonDoublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In [A2:A3307] 
     mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  i = 2
  For Each c In mondico.keys
    If mondico(c) = 1 Then
      Cells(i, 12) = c 
      i = i + 1
    End If
  Next
End Sub

Sub Doublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In [A2:A10] 
     mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  i = 2
  For Each c In mondico.keys
    If mondico(c) > 1 Then
      Cells(i, 10) = c
      i = i + 1
    End If
  Next
End Sub

[Symfony] définir un préfix pour les tables générées par doctrine

voici comment définir un préfix pour les tables sql générées par doctrine :

il faut aller dans config/ProjectConfiguration.class.php et ajouter la fonction suivante :

  public function configureDoctrine(Doctrine_Manager $manager)
  {
    $manager->setAttribute(Doctrine_Core::ATTR_TBLNAME_FORMAT, 'mon_prefix_%s');
  }

ainsi toutes les tables auront pour préfix le mot "mon_prefix"

PS. ceci nous permet de manipuler des noms de tables/objets sans le prefix, voici un début de schema.yml

Contact:
  tableName: contacts
  actAs: [Timestampable]

  columns:
    email:      { type: string(100)}
    name:       { type: string(255) }

dans le code on fera des Doctrine::getTable("Contact") ou des $c = new Contact() alors que notre table s'appelle "mon_prefix_contacts"

[PHP] redimensionner une image

voici une fonction pour redimensionner une image, si l'image est plus petite que la taille demandée, on ne fait rien :

function _resizeImage( $tmpname, $w, $h, $save_dir, $save_name)
  {
    $save_dir      .= (substr($save_dir,-1) != "/") ? "/" : "";
    $img_src_chemin = $tmpname;
    $img_dst_chemin = $save_dir.$save_name;
    $extension = strtolower(substr($img_src_chemin, -3));
    
    switch ( $extension ) {
      case "jpg":
      case "peg": //pour le cas où l'extension est "jpeg"
        $img_src_resource = imagecreatefromjpeg( $img_src_chemin );
        break;

      case "gif":
        $img_src_resource = imagecreatefromgif( $img_src_chemin );
        break;

      case "png":
        $img_src_resource = imagecreatefrompng( $img_src_chemin );
        break;

      default:
        $img_src_resource = imagecreatefromjpeg( $img_src_chemin );
    }

    $img_src_width  = imagesx( $img_src_resource );
    $img_src_height = imagesy( $img_src_resource );

    //preserver les dimensions
    $rapport = $img_src_width / $img_src_height;
    if($rapport > 1) {
      $h = intval($h / $rapport);
    } else {
      $w = intval($w * $rapport);
    }

    //si image plus petite que ce qu'on veut (si on veut agrandir une image, il faudra enlever cette partie)
    if($img_src_width <= $w && $img_src_height <= $h) {
      rename($img_src_chemin, $img_dst_chemin);
      return;
    }

    $img_dst_resource = imagecreatetruecolor($w, $h);
    $white = imagecolorallocate($img_dst_resource, 255, 255, 255); //ici on veut un fond blanc (noir par défaut)
    imagefilledrectangle($img_dst_resource, 0, 0, $w, $h, $white);

    imagecopyresampled($img_dst_resource, $img_src_resource, 0, 0, 0, 0, $w, $h, $img_src_width, $img_src_height);

    switch ( $extension ) {
      case "jpg":
      case "peg":
        imagejpeg($img_dst_resource, $img_dst_chemin);
        break;

      case "gif":
        imagegif($img_dst_resource, $img_dst_chemin);
        break;

      case "png":
        imagepng($img_dst_resource, $img_dst_chemin);
        break;

      default:
        imagejpeg($img_dst_resource, $img_dst_chemin);
    }

    //on supprime l'image source
    unlink($img_src_chemin);
  }

exemple d'utilisation :

$this->_resizeImage(
            $_FILES['totot']['temp_name'], //de mémoire^^
           150,
           150,
           "/var/www/html/uploads/",
          "thumbnail.jpg"
);

[Symfony / Doctrine] exécuter une requête SQL en live (Raw SQL)

$q = Doctrine_Manager::getInstance()->getCurrentConnection();
$res = $q->execute("SELECT SUM(ptp) as total FROM table WHERE id = $id");
$total = $res->fetchColumn();

Sorting a Multi-Dimensional Array

function subval_sort( $a, $subkey, $order='asc' ) {
    foreach( $a as $k=>$v ) {
        $b[$k] = strtolower( $v[$subkey] );
    }
    if( $order === 'desc' ) {
        arsort( $b );        
    }
    else {
        asort( $b );
    }
    foreach( $b as $key=>$val ) {
        $c[$key] = $a[$key];
    }
    return $c;
}

Pages

Subscribe to www.snippets.fr RSS