RSS

Archives Mensuelles: septembre 2007

Les Sables été 2007

Fin du placo, plafonds et sous-couche …

 
Poster un commentaire

Publié par le vendredi 14 septembre 2007 dans les sables d'olonne

 

Étiquettes :

Test de la mise en forme syntaxique

D’après la FAQ WordPress il suffit d’encadrer le code avec des marqueurs sourcecode language=’xxx’ /sourcecode entre crochets avec language dans

  • cpp
  • csharp
  • css
  • delphi
  • html
  • java
  • jscript
  • php
  • python
  • ruby
  • sql
  • vb
  • xml

Un essai en java


package uml;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

/**
 * version d'un centre SPA avec une arraylist (tableau dynamique)
 * @see java.util.ArrayList
 */
public class CentreSPAListe {

    /**
     * syntaxe java étendue ( JDK 1.5). la liste contient des animaux, pas des objects !
     * ceci réduit fortement le nombre de forcage de type (cast) à faire
     */
    private ArrayList<Animal> liste = new ArrayList();

    /**
     * notez la syntaxe for etendue et la non nécessité de caster
     * Object en Animal du fait de la déclaration de liste comme
     * un ArrayList d'animaux !
     */
    public void liste() {
        for (Animal a: liste) {
            System.out.println(a);
            a.mange();
        }
    }

    /**
     * méthode plus classique de "balayer" un ArrayList
     */
    public void liste1() {
        for (int i = 0; i < this.liste.size(); i++) {
            Animal a = this.liste.get(i);
            System.out.println(a);
            a.mange();
        }
    }

    /**
     * méthode moins classique mais portable sur tous type de collections java
     */
    public void liste2() {
        Iterator it = this.liste.iterator();
        while (it.hasNext()) {
            // le cast est obligatoire malgré la déclaration , pas cool !
            Animal a = (Animal)it.next();
            System.out.println(a);
            a.mange();
        }
    }

    public void ajoute(Animal a) {
    //  contains marche car les animaux on une méthode equals !
    // faite un click doit sur contains puis "goto déclaration"
    // pour voir son code Java tel qu'il est fourni dans la bibliothèque Java
        if (!this.liste.contains(a))
            this.liste.add(a);
        else
            System.out.println("nous avons déja un " + a);
    }

    public void retire(Animal a) {
        this.liste.remove(a);
    }

    public CentreSPAListe() {
        this.ajoute(new ChatGris("minou"));
        this.ajoute(new Chat("minette", "blanc"));
        this.ajoute(new Chien("epagneul", "rip", "marron"));
        this.ajoute(new Serin("nestor"));
        this.ajoute(new Ours("baloo", "brun"));
        this.liste();
        System.out.println("-----");
        // ca marche car les animaux ont une méthode equals spécifique
        //qui permet de les comparer entre eux !
        this.retire(new Chat("minette", "blanc"));
        this.liste1();
        //échec de l'ajout car nous en avons déja un !
        // de nouveau c'est la méthode equals de Animal qui est appelée
        this.ajoute(new Serin("nestor"));

        //deux chats ayant des noms différents
        //ajout OK et test du tri par race, puis nom
        this.ajoute(new Chat("minette", "blanc"));
        this.ajoute(new Chat("minette II", "blanc"));

        System.out.println("-----");
        // nous avons ajouté aux animaux une méthode compareTo qui
        // sera appelée par la méthode sort (tri) de la classe Collections
        // donc nous pouvons trier notre centre SPA !
        Collections.sort(this.liste);
        this.liste2();

    }

    public static void main(String&#91;&#93; args) {
        CentreSPAListe centreSPAListe = new CentreSPAListe();
    }
}

&#91;/sourcecode&#93;
<h3>Essai en php</h3>


<?PHP // $Id: infos_cours.php,v 1.00  2007/02/12  PP Exp $

// liste des cours VISIBLES avec catégories et profs
// doit être dans un dossier de /var/www/html/moodle
// sortie CVS en iso-8859-1 pour Excel
/*
 v 1.1:
     utilisation de CFG->wwwroot
     emission de la date de derniere modif
TODO

*/
require_once('../config.php');

add_to_log(0, '../pp', 'infos RPN', '','');
//echo ("liste des cours et des ressurces visibles \n");

function nl2brr($text){
// vire les sauts de lignes qui perturbent la sortie CVS
   return preg_replace("/\r\n|\n|\r/", "
", $text);
}

function removeQuotes($text) {
//vire les " dans une chaine qui perturbent la sortie CVS
   return preg_replace("/\"/","\'",$text);
}

function cvs ($chaine, $quote=1, $sep="\t") {
    $chaine=nl2brr(removeQuotes($chaine));
    if ($quote) $chaine="\"".$chaine."\"";
    return $chaine.$sep;
}

function profs($id_cours) {
//liste des profs d'un cours
// version  MOODLE 1.7 !!!
    $context = get_context_instance(CONTEXT_COURSE, $id_cours);
    $profs=get_users_by_capability($context,"moodle/legacy:editingteacher", "firstname,lastname,email","lastname");
    $liste="";
    foreach ($profs as $p)
       $liste .=$p->firstname. ' '.$p->lastname.'<'.$p->email.'>'.'
';

   return $liste;
}

$courses = count_records('course','visible',1);

//echo "il y a $courses cours visibles\n";

header("content-type: application/vnd.ms-excel");
header("content-disposition: attachment; filename=moodle_cours_profs.csv");

//$categories = get_categories("0");  // Parent = 0   ie top-level categories only
$categories= get_categories(); // toutes
//var_dump($categories);

echo cvs("N° catégorie",1).
     cvs("catégorie",1).
     cvs("N° cours",1).
     cvs("code cours",1).
     cvs("description cours",1).
     cvs("auteurs",1).
     cvs("resumé RPN",1,"\n");

foreach ($categories as $category) {
  if ($category->id !=1 && $category->visible) { // pas les tests)
    //echo "$category->id\t$category->name\n";
    $courses = get_courses($category->id);
    if ($courses) {
      foreach ($courses as $course) {
          if ($course->visible) {
             echo(
                  cvs($category->id,0).
                  cvs($category->name,1).
                  cvs($course->id,0).
                  cvs($course->shortname,1).
                  cvs($course->fullname,1).
                  cvs(profs($course->id),1,"\n")
                  );
          }
        }
     }
  }
}

?>

Essai Pascal Objet :


program communes1;
{$mode objfpc}

procedure Decoupe (Ligne:string; Sep:char;var F1,F2:String; var Ok:Boolean);
var P:integer;
begin
        P:=Pos(Sep,Ligne);
        If ( P=0) then
                Ok:=False
        else
                begin
                        Ok:=True;
                        F1:=Copy(ligne,1,P-1);
                        F2:=Copy(Ligne,P+1,length(Ligne));
                end;
end;

const NomFic ='communes.txt';
var Cp,CpTemp,Ville,Ligne:string;
    N:integer;
    F:TextFile;
    Ok:boolean;

begin
        repeat
                write ('code postal ? ');
                readln (cp);
        until length(cp)=5;
        AssignFile(F,NomFic);
        Reset(F);
        N:=0;
        While Not EOF(F) do
                begin
                        Readln(F,Ligne);
                        Decoupe(Ligne,char(9),Ville,CpTemp,Ok);
                        if Ok and (CpTemp=Cp) then
                                begin
                                        iF N>0  then Write(',');
                                        Write(Ville);
                                        N:=N+1
                                end;
                end;
        Writeln;
        Writeln(N,' ville(s)');
        CloseFile(F)

end.

Essai XML :

<?xml version="1.0" encoding="UTF-8" ?>
<COMPATIBILITY_MATRIX>
  <MOODLE version="1.5">
    <DATABASE level="required">
      <VENDOR name="mysql" version="3.23" />
      <VENDOR name="postgres" version="7.4" />
    </DATABASE>
    <PHP version="4.1.0" level="required" />
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="mbstring" level="optional" />
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.6">
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="7.4" />
    </DATABASE>
    <PHP version="4.3.0" level="required" />
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.7">
    <UNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="unicoderecommended" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="7.4" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="4.3.0" level="required">
      <RESTRICT function="restrict_php50_version" message="php50restricted" />
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.8">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="7.4" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="4.3.0" level="required">
      <RESTRICT function="restrict_php50_version" message="php50restricted" />
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.9">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="8.0" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="4.3.0" level="required">
      <RESTRICT function="restrict_php50_version" message="php50restricted" />
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="2.0">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="8.0" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="5.2.4" level="required">
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
</COMPATIBILITY_MATRIX>

Essai avec un code source mal indenté :


 unit boites;
{$mode objfpc}
interface
uses crt;

function nFois(c: char; n:integer):string;
//renvoie une chaine constitu�e de <n> fois le caract�re <c>

procedure ligneH (x1,x2,y,couleur: integer);
//trace une ligne horizontale 

procedure ligneV (x,y1,y2,couleur: integer);
//trace une ligne verticale

procedure boite (x1,y1,x2,y2: integer;couleur:integer);

procedure ecritTexte (x,y:integer; couleur:integer;texte:string);

implementation

function nFois(c: char; n:integer):string;
//renvoie une chaine constitu�e de <n> fois le caract�re <c>
var I:Integer;
begin
  Result:='';
  for I:=1 to N do Result:=Result+c
end;

procedure ligneH (x1,x2,y,couleur: integer);
//trace une ligne horizontale
begin
textColor(couleur);
gotoxy(x1,y);
write(nFois('-',x2-x1+1))
end;

procedure ligneV (x,y1,y2,couleur: integer);
//trace une ligne verticale
var y:integer;
begin
textColor(couleur);
for y:=y1+1 to y2-1 do
  begin
  gotoxy(x,y); write('|');
gotoxy(x,y); write('|');
  end;

end;

procedure boite (x1,y1,x2,y2: integer;couleur:integer);
begin
textColor(couleur);
gotoxy(x1,y1);
write('+');
ligneH(x1+1,x2-1,y1,couleur);
write('+');
LigneV(x1,y1,y2,couleur);
LigneV(x2,y1,y2,couleur);
gotoxy(x1,y2);
write('+');
ligneH(x1+1,x2-1,y2,couleur);
write('+')
end;

procedure ecritTexte (x,y:integer; couleur:integer;texte:string);
begin
TextColor(couleur);
gotoxy(x,y);
write(texte);
end;

end.

 
 
1 commentaire

Publié par le mardi 11 septembre 2007 dans Non classé

 

Étiquettes :