At 11:31 06.04.02, you wrote:
>At 08:10 06.04.02, you wrote:
>>On Sat, 6 Apr 2002, F�lix Hauri wrote:
>>
>> > L'une des raisons pour lesquelles je pr�f�re perl est que l'on peut
>> > essayer directement en ligne de commande (shell) des trucs comme:
>>
>>L'autre raison ce sont les biblioth�ques:
>>
>>perl -w -e 'use strict; use URI::Escape; print uri_escape("abcd�\n");'
>>
>>:)
>
>C'est un peu les gouts et les couleurs de chacuns. Bien que ne voit pas 
>l'interet de comparer PHP et Perl. PHP est fait � la base pour �tre 
>encapsul� dans du HTML, ce que n'est pas le cas Perl (c'est dans ce cadre 
>que mon exemple �tait utilis�). Le choix d�pent surtout de ce que l'on 
>veut faire, si l'on veut travailler principalement sur des cha�nes de 
>caract�res ou faire un test rapide le choix de Perl et probablement le 
>meilleur. Il est certain que Perl est tr�s fournit au niveau des resources 
>mais pour ma par j'ai un pr�f�rence pour Python voir Ruby pour ce type de 
>d�velopement en language interpret�. D'ailleurs ceux-ci sont �galement 
>assez bien fournis au niveau des resources de plus il sont nettements 
>mieux structur�s et un poil plus stricts (j'exag�re mais c'est un peut 
>comme comparer du C avec de l'ADA ou avec du Pascal). Par contre quand un 
>interface graphique devient un peut complexe, qu'il faille faire attention 
>� la s�curit� ou avoir des aplications multiplateforme je passe facilement 
>sur du Java.
>Je pense que le choix peut d�pendre �galement de l'exp�rience de chacun, 
>on va pas choisir un language que l'on ne connait pas o� que l'on pas 
>pratiqu� depuis longtemp pour faire trois lignes de code. Par contre on 
>peut envisager d'investir du temps pour des gros projets ou l'apport d'un 
>language par rapport � un autre et important.
>De toutes fa�on, il y aura toujours et heureusement des doux dingues qui 
>pour une raison o� une autre d�sideront de cr�er un nouveau language qui 
>seront mieux adapt�s pour si ou �a. Mais m�me avec cette pl�tore de 
>languages, il n'en existe aucuns que tout le monde consid�re comme parfait 
>� tout point de vue.
>Je suis sur que l'on trouverai des personnes que pr�tendrai que la 
>meilleur solution pour cet example serai le Prolog, Forth ou m�me du VB.
>Conclusion on fait comme on le sent avec ce que l'on sait ou avec ce que 
>l'on apprend.
>A+
>Martial

Je me suis amuser � faire un petit test avec les fonctions �quivalente en C 
(j'ai un peu optimalis� l'algorythme). Cela mais environ 13 secondes pour 
1000000 op�ration sur pIII � 566 MHz. Ce serai int�ressant de comparer en 
la transformant en une librarie pouvant �tre appel�e depuis le Perl et 
comparer.

char *t[256]={
         
"","%01","%02","%03","%04","%05","%06","%07","%08","%09","%0A","%0B","%0C","%0D","%0E","%0F",
         
"%10","%11","%12","%13","%14","%15","%16","%17","%18","%19","%1A","%1B","%1C","%1D","%1E","%1F",
         
"%20","%21","%22","%23","%24","%25","%26","%27","%28","%29","%2A","%2B","%2C","%2D","%2E","%2F",
         "0","1","2","3","4","5","6","7","8","9","%3A","%3B","%3C","%3D","%3E","%3F",
         "%40","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P",
         "Q","R","S","T","U","V","W","X","Y","Z","%5B","%5C","%5D","%5E","%5F",
         "%60","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p",
         "q","r","s","t","u","v","w","x","y","z","%7B","%7C","%7D","%7E","%7F",
         
"%80","%81","%82","%83","%84","%85","%86","%87","%88","%89","%8A","%8B","%8C","%8D","%8E","%8F",
         
"%90","%91","%92","%93","%94","%95","%96","%97","%98","%99","%9A","%9B","%9C","%9D","%9E","%9F",
         
"%A0","%A1","%A2","%A3","%A4","%A5","%A6","%A7","%A8","%A9","%AA","%AB","%AC","%AD","%AE","%AF",
         
"%B0","%B1","%B2","%B3","%B4","%B5","%B6","%B7","%B8","%B9","%BA","%BB","%BC","%BD","%BE","%BF",
         
"%C0","%C1","%C2","%C3","%C4","%C5","%C6","%C7","%C8","%C9","%CA","%CB","%CC","%CD","%CE","%CF",
         
"%D0","%D1","%D2","%D3","%D4","%D5","%D6","%D7","%D8","%D9","%DA","%DB","%DC","%DD","%DE","%DF",
         
"%E0","%E1","%E2","%E3","%E4","%E5","%E6","%E7","%E8","%E9","%EA","%EB","%EC","%ED","%EE","%EF",
         
"%F0","%F1","%F2","%F3","%F4","%F5","%F6","%F7","%F8","%F9","%FA","%FB","%FC","%FD","%FE","%FF"
};

unsigned char t1[256]={
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0,0,0,0,0,0,
         0,0xA0,0xB0,0xC0,0xD0,0xE0,0xF0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0xA0,0xB0,0xC0,0xD0,0xE0,0xF0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};

unsigned char t2[256]={
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0,0,0,0,0,0,
         0,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};

void urlenc(char *bufin, char *bufout){
   char *pi,*pt,*po;
   po=bufout;
   for(pi=bufin;*pi!=0;pi++){
     for(pt=t[(unsigned char) *pi];*pt!=0;pt++){
       *(po++)=*pt;
     }
   }
   *po='\0';
}

void urldec(char *bufin, char *bufout){
   char *pi;
   unsigned char *po;
   po=(unsigned char *)bufout;
   for(pi=bufin;*pi!=0;pi++){
     if (*pi=='%'){
       pi++;
       *(po)=t1[(unsigned char) *pi++];
       *(po++)+=t2[(unsigned char) *pi];
     }else{
       *(po++)=*(pi);
     }
   }
   *po='\0';
}

int main(){
   char *in,*tmp,*out;
   int i;

   in="Je m'appelle F�lix!\nEt je suis 99.5% content...\n ����� et A-Z a-z 
0-9 #<a href=\"Ragnagna\">\0";
   tmp=(char *)malloc(256);
   out=(char *)malloc(256);
   for(i=0;i<1000000;i++){
     urlenc(in,tmp);
     urldec(tmp,out);
   }
   printf("in =%s\n",in);
   printf("tmp=%s\n",tmp);
   printf("out=%s\n",out);
   return 0;
}




----------
MuTECH
Martial Guex
Rue des Alpes
1452 Les Rasses
Switzerland

Phone : +41 24 454 46 35
Fax. : +41 24 454 46 32
Email : [EMAIL PROTECTED] ([EMAIL PROTECTED] for Microsoft Outlook users)

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à