Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1384 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  remplacer des caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

remplacer des caracteres

n°1762616
freddy_gho​st
Posté le 21-07-2008 à 16:05:06  profilanswer
 

Je souhaiterai avoir une fonction en javascript qui recherche dans une chaine les different suivi de zero consécutif et qui les marques à l'aide de lettre pour pouvoir reformer la chaine initial.
 
ex :  
on part de :
LC012001010000
 
on obtien aprés traitement avec a = 1 zéro, b = 2 zéro etc...:  
 
LCa12B1a1d
 
et ensuite il faudrais retrouver la chaine originale :
 
LC012001010000

mood
Publicité
Posté le 21-07-2008 à 16:05:06  profilanswer
 

n°1762824
gatsu35
Blablaté par Harko
Posté le 21-07-2008 à 23:34:29  profilanswer
 

Code :
  1. <html>
  2.     <head>
  3.         <title></title>
  4.     <script>
  5.         var myString = 'LC01200101000100000400000500006000400000003000000020000000050000000003';
  6.         
  7.         /* encode la chaine LC0120010001 en LCa12b1c1 */
  8.         function encodeStr(str) {
  9.             var alpha = 'abcdefghijklmnopqrstuvwxyz';
  10.             
  11.             //on parcours la chaine de lettres en partant de la fin, cela permet de remplacer d'abord les plus grands groupes de zeros et de finir par les plus petits.
  12.             for (var i=alpha.length-1; i>=0; i--) {
  13.                 //on utilise une expression reguliere du type : /0{X}/g  ou X est le nombre de zeros à remplacer
  14.                 str = str.replace(new RegExp('0{'+(i+1)+'}','g'),alpha[i]);
  15.             }
  16.             return str;
  17.         }
  18.         
  19.         /* fait l'inverse de la fonction précédente */
  20.         function decodeStr(str) {
  21.             var alpha = 'abcdefghijklmnopqrstuvwxyz';
  22.             // cette fonction permet d'avoir le nombre de zeros demandes
  23.             function getZeros(num) {
  24.                 var str='';
  25.                 for (var i=1; i<=num; i++)
  26.                     str+=0;
  27.                 return str;
  28.             }
  29.             
  30.             // maintenant on remplace la lettre par le nombre de zeros necessaires
  31.             for (var i=alpha.length-1; i>=0; i--) {
  32.                 str = str.replace(new RegExp(alpha[i],'g'), getZeros(i+1));
  33.             }
  34.             return str;
  35.         }
  36.         
  37.         console.log(myString);  //LC01200101000100000400000500006000400000003000000020000000050000000003
  38.         console.log(encodeStr(myString));  //LCa12b1a1c1e4e5d6c4g3g2h5i3
  39.         console.log(decodeStr(encodeStr(myString))); //LC01200101000100000400000500006000400000003000000020000000050000000003
  40.     </script>    
  41.     </head>
  42.     <body>
  43.         
  44.     </body>
  45. </html>


j'ai bizarrement l'impression que ton truc ressemble à un exercice [:petrus75]


Message édité par gatsu35 le 21-07-2008 à 23:36:01
n°1762873
freddy_gho​st
Posté le 22-07-2008 à 09:09:25  profilanswer
 

Merci beaucoup sa marche très bien.  
 
J'ai une autre question :  
Comment faire pour enlever tout se qui se trouve devant un nombre
Par exemple que : B 000002219711 devienne 2219711  
 

n°1762891
freddy_gho​st
Posté le 22-07-2008 à 09:45:42  profilanswer
 

J'ai un souci avec la méthode new RegExp elle me met undifined quand j'utilise internet explorer, et marche très bien avec mozilla

n°1762895
freddy_gho​st
Posté le 22-07-2008 à 09:51:57  profilanswer
 

Il semblerai qu'il faille mettre des "?" à certain endroit. Mais où?
 
str = str.replace(new RegExp('0{'+(i+1)+'}','g'),alpha[i]);

n°1762912
gatsu35
Blablaté par Harko
Posté le 22-07-2008 à 10:26:47  profilanswer
 

bon au temps pour moi, il fallait forcément avoir alpha en tant que tableau

 
Code :
  1. <html>
  2. <head>
  3.  <title></title>
  4. <script>
  5.  var myString = 'LC01200101000100000400000500006000400000003000000020000000050000000003';
  6.  /* encode la chaine LC0120010001 en LCa12b1c1 */
  7.  function encodeStr(str) {
  8.   var alpha = 'abcdefghijklmnopqrstuvwxyz'.split('');
  9.   //on parcours la chaine de lettres en partant de la fin, cela permet de remplacer d'abord les plus grands groupes de zeros et de finir par les plus petits.
  10.   for (var i=alpha.length-1; i>=0; i--) {
  11.    //on utilise une expression reguliere du type : /0{X}/g  ou X est le nombre de zeros à remplacer
  12.    str = str.replace(new RegExp('0{'+(i+1)+'}','g'),alpha[i]);
  13.   }
  14.   return str;
  15.  }
  16.  /* fait l'inverse de la fonction précédente */
  17.  function decodeStr(str) {
  18.   var alpha = 'abcdefghijklmnopqrstuvwxyz'.split('');
  19.   // cette fonction permet d'avoir le nombre de zeros demandes
  20.   function getZeros(num) {
  21.    var str='';
  22.    for (var i=1; i<=num; i++)
  23.     str+=0;
  24.    return str;
  25.   }
  26.   // maintenant on remplace la lettre par le nombre de zeros necessaires
  27.   for (var i=alpha.length-1; i>=0; i--) {
  28.    str = str.replace(new RegExp(alpha[i],'g'), getZeros(i+1));
  29.   }
  30.   return str;
  31.  }
  32.  
  33.  document.write(myString + '<br>');  //LC01200101000100000400000500006000400000003000000020000000050000000003
  34.  document.write(encodeStr(myString) + '<br>');  //LCa12b1a1c1e4e5d6c4g3g2h5i3
  35.  document.write(decodeStr(encodeStr(myString)) + '<br>'); //LC01200101000100000400000500006000400000003000000020000000050000000003
  36. </script>   
  37. </head>
  38. <body>
  39. </body>
  40. </html>


Message édité par gatsu35 le 22-07-2008 à 11:11:12
n°1762955
freddy_gho​st
Posté le 22-07-2008 à 11:16:09  profilanswer
 

MErci sa marche nikel.
J'ai une autre question :  
Comment faire pour enlever tout se qui se trouve devant un nombre
Par exemple que : B 000002219711 devienne 2219711  

n°1762963
gatsu35
Blablaté par Harko
Posté le 22-07-2008 à 11:24:53  profilanswer
 

Code :
  1. var str = 'B 000002219711';
  2. var match = str.match(/(\d+)$/g); //["000002219711"]
  3. var result = 0;
  4. if (match) { //si la regexp a retourné quelque chose de potable
  5.  var result = parseInt(match[0],10) //transforme le resultat en nombre entier, attention bien sur à mettre la base de conversion (10) sinon le parseint ira chercher la base la plus adéquat pour ce nombre ('c'est à dire octal)
  6. }

n°1762976
freddy_gho​st
Posté le 22-07-2008 à 11:45:05  profilanswer
 

C'est parfait, je te remercie bien.

n°1763209
freddy_gho​st
Posté le 22-07-2008 à 15:00:44  profilanswer
 

Comment traduire cette fonction en langage php?
 
function decodeStr(str)  
{
 var alpha = 'abcdefghijklmnopqrstuvwxyz';
 alpha=alpha.split('');
 // cette fonction permet d'avoir le nombre de zeros demandes
 function getZeros(num)  
 {
  var str='';
  for (var i=1; i<=num; i++)
  str+=0;
  return str;
 }
 // maintenant on remplace la lettre par le nombre de zeros necessaires
    for (var i=alpha.length-1; i>=0; i--)  
 {
  str = str.replace(new RegExp(alpha[i],'g'), getZeros(i+1));
 }
   return str;
}

mood
Publicité
Posté le 22-07-2008 à 15:00:44  profilanswer
 

n°1763219
freddy_gho​st
Posté le 22-07-2008 à 15:18:55  profilanswer
 

Voila se que sa donne mais j'ai une erreur sur cette ligne :  
 
$str = str_replace($alpha[$i],$str), getZeros($i+1));
 
 
/* fait l'inverse de la fonction précédente */
function decodeStr($str)  
{
 $alpha = 'abcdefghijklmnopqrstuvwxyz';
 $alpha=split('',$alpha);
 // cette fonction permet d'avoir le nombre de zeros demandes
 function getZeros($num)  
 {
  $str='';
  for ($i=1; $i<=num; $i++)
  $str+=0;
  return $str;
 }
 // maintenant on remplace la lettre par le nombre de zeros necessaires
    for ($i=strlen($alpha)-1; $i>=0; $i--)  
 {
  $str = str_replace($alpha[$i],$str), getZeros($i+1));
 }
   return $str;
}

n°1763750
freddy_gho​st
Posté le 23-07-2008 à 15:59:21  profilanswer
 

J'utilise des cookie et je viens de m'apercevoir que la taille limite pour les cookie qui et de 4ko et une taille global et n'est pas de 4ko pour chaque cookie. ya t'il un moyen de contourner se probleme?

n°1763917
gatsu35
Blablaté par Harko
Posté le 23-07-2008 à 22:31:24  profilanswer
 

nan et c'est normal, les cookies sont envoyés au serveur par ton navigateur, donc il est impératif de limiter les cookie et leur poids
 
si tu bouffes du cookie c'est que tu as une très mauvaise gestion des infos user. Utilise plutôt les sessions, ca passera largement mieux

n°1764036
freddy_gho​st
Posté le 24-07-2008 à 10:10:13  profilanswer
 

ba en faite si j'ai choisi d'utilisé les cookies, c'est par dépi, car j'utilise un windows Ce qui doit pouvoir fonctionner en mode autonome si il n'y a plus de wifi. J'avais donc utilisé un fichier texte au départ, ceci fonctionnait trés bie nsur pc mais sur le windows CE l'activeX ne reconnaissait pas le bloc note, ou word etc....

n°1764193
gatsu35
Blablaté par Harko
Posté le 24-07-2008 à 13:20:36  profilanswer
 

activeX ? mais nan quoi pas d'activeX
je sens clairement que t'es parti pour faire du nawak, car là je vois du PHP, du JS, du cookie et là tu me parle d'activeX :(
 
et jvois pas pourquoi ça doit être autonome ? c'est une appli qui est en local sur ta machine ?

n°1764270
freddy_gho​st
Posté le 24-07-2008 à 14:32:32  profilanswer
 

oui c sur d pistolet code à barre et y a déjà des programme en php. Mais le souci c'est que pour parait au éventuel panne de wifi ou de serveur il faut que le pistolet puisse continuer à biper des produits mais en local forcément (c'est en milieu industriel)

n°1764282
gatsu35
Blablaté par Harko
Posté le 24-07-2008 à 14:46:11  profilanswer
 

ben faudrait un serveur en local, mais surtout faudrait surtout pas que ce soit fait en php ou si c'est le cas faudrait faire en sorte que ce soit compilé

n°1764307
freddy_gho​st
Posté le 24-07-2008 à 15:05:29  profilanswer
 

j'ai réalisais le truc en javascript.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  remplacer des caracteres

 

Sujets relatifs
[Résolu] Remplacer des caractères par d'autres dans un fichier texteremplacer caractères avec VB6
[C] Remplacer une partie d'une chaîne de caractères[PHP] Remplacer des caractères
[PHP] remplacer une chaine de caractères dans un .ini [resolu]Accents à remplacer par caractères US correspondant
[VB] DEBUTANT : Remplacer X caracteres dans une variables[ASP] Comment remplacer des " par des ' dans une chaine de caracteres
[PHP] remplacer x caractères en x autres caractères[gawk] remplacer une chaine de caracteres ds un fichier texte
Plus de sujets relatifs à : remplacer des caracteres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR