begin process at 2012 05 30 04:21:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Textarea et Replace


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Textarea et Replace

mardi 7 août 2007 à 16:00:55 | Textarea et Replace

tinux

Membre Club
Bonjour, afin de créer une coloration syntaxique pour un site pmwiki, j'ai besoin de votre aide pour un script javascript !

En effet, je voudrais que dans un textaera, l'utilisateur entre son code vb brut (par exemple) :

Private sub Hello()
    For i=0 to 2 step 1
         MsgBox("Hello")
    Next i
End Sub

Et en cliquant sur un bouton, dans un deuxième textarea s'afficherait quelquechose comme :

%color=blue%Private%% %color=blue%Sub%% Hello() %color=green%'Un commentaire'%%
-> %color=blue%For%% i = 0 %color=blue%to%% 2 %color=blue%step%% 1
-->%color=blue%MsgBox%%(%color=darkred%"Hello"%%)
-> %color=blue%Next%% i
%color=blue%End%% %blue%Sub%%


-- Détails--

j'ai mis en rouge ce qui doit être ajouté pour que pmwiki puisse afficher ceci :

Private Sub Hello()
    For i = 0 to 2 step 1
       MsgBox("Hello")
    Next i
End sub

Résumé des tags :

-%color=blue%% Mon Texte %%// Donne la couleur du texte entre chaque '%%'
-
-> // Permet de créer une indentation
-
--> // Permet de créer une indentation plus forte


mardi 7 août 2007 à 16:07:16 | Re : Textarea et Replace

tinux

Membre Club
J'ai pensé à une fonction comme ceci pour la coloration :

function ColorCode (texte) {

var reg = /Private|Sub|For|To|Step|MsgBox|Next|End/;
texte = texte.replace(reg, "%blue%"&reg&"%%");

}

Mais je ne vois toujours pas comment traduire :

- un '   ' en '->'
- un '       ' en '-->'
- colorer en vert tout ce qui commence par un ' et finit par un '
- colorer en darkred tout ce qui commence par un " et finit par un "

De même, je ne sait pas comment appeler la fonction depuis un bouton, executer la fonction sur le premier textarea et afficher le resultat dans le second..

Bref, je ne m'y connait pas du tout en java et donc j'aurais grand besoin d'aide !

Un grand Merci à vous !!!
mardi 7 août 2007 à 17:31:40 | Re : Textarea et Replace

the_wwt

Bonjour,
J'ai testé ce bout de code, pour les trois reg exp (keysWord, comment, string) mais avec la librairie prototype dispobible ici ( c'est bien plus élégant).
Je bosse sur les indentaions et j'ai une question:
Y a t'il autant de tiret que d'espaces? -  exemple:
' ' donne ->
'    ' donne -->
'        ' donne -->
Cordialement, Pierrick.
<---------------------------------------------------------------------------------------------------------->
<html>
<head>
<title></title>
<style type="">
#source{
    width: 43%;
    height: 100%;
    float: left;
}
#myButton{
    width: 8%;
    height: 100%;
    float: left;
    margin-left: 30px;
    margin-right: 30px;
}
#destination{
    width: 43%;
    height: 100%;
    float: left;
}
</style>

<script src='prototype.js'></script>
<script language="javascript" type="text/javascript">
<!--
var reReservedKeys = /Private|Sub|For|To|Step|MsgBox|Next|End/;
var tplReservedKeys = "%blue%#{0}%%";

var reComment = /(.*)('.*')(.*)/;
var tplComment = "#{1}%green%#{2}%%#{3}";

var reString = /(.*)(".*")(.*)/;
var tplString = "#{1}%darkred%#{2}%%#{3}";
function haveFun(){
    var s = document.getElementById("source").value;
    s = s.gsub( reReservedKeys, tplReservedKeys);
    s = s.gsub( reComment, tplComment);
    s = s.gsub( reString, tplString);
    document.getElementById("destination").value = s;
}
-->
</script>

</head>
<body>
<textArea id='source'></textArea>
<input id='myButton' type="button" value="Have fun !" onclick="haveFun();">
<textArea id='destination'></textArea>

</body>
</html>
mardi 7 août 2007 à 17:43:24 | Re : Textarea et Replace

the_wwt

Sinon, c'est tout simplement cela:
var reReservedKeys = /Private|Sub|For|To|Step|MsgBox|Next|End/;
var tplReservedKeys = "%blue%#{0}%%";

var reComment = /(.*)('.*')(.*)/;
var tplComment = "#{1}%green%#{2}%%#{3}";

var reString = /(.*)(".*")(.*)/;
var tplString = "#{1}%darkred%#{2}%%#{3}";

var reIndent1 = /(.*)( {3})(.*)/;
var tplIndent1 = "#{1}->%#{3}";

var reIndent2 = /(.*)( {7})(.*)/;
var tplIndent2 = "#{1}-->%#{3}";
function haveFun(){
    var s = document.getElementById("source").value;
    s = s.gsub( reReservedKeys, tplReservedKeys)
        .gsub( reComment, tplComment)
        .gsub( reString, tplString)
        .gsub( reIndent2, tplIndent2)
        .gsub( reIndent1, tplIndent1);
    document.getElementById("destination").value = s;
}
mardi 7 août 2007 à 17:45:26 | Re : Textarea et Replace

the_wwt

Oups y a une erreur dans les templates des indentations...
Je te laisse la chercher... C'est le signe pour une fraction dont le dénominateur est 100.
Cordialement,
Pierrick.
mardi 7 août 2007 à 17:46:47 | Re : Textarea et Replace

tinux

Membre Club
C'est vraiment du très joli travail, Félicitation !!

Alors pour les indentations, j'ai compté les 'espaces' depuis VS

En fait '->' correspond à une tabulation
          '-->' à deux etc..

Dans VS, une tabulation équivaut à 4 espaces.
mardi 7 août 2007 à 17:54:41 | Re : Textarea et Replace

tinux

Membre Club
{X} cette balise définit-elle les espaces ?
mardi 7 août 2007 à 17:58:02 | Re : Textarea et Replace

tinux

Membre Club
Oups je viens de lire ton message, je vais voir si je trouves :p
mardi 7 août 2007 à 18:17:35 | Re : Textarea et Replace

the_wwt

En effet le nombre en accolade veut dire exactement n occurences.
Donc si c'est 4 et 8 remplace respectivement 3 et 7 par 4 et 8.
Fais réponse accéptée,
Cordialement,
Pierrick
mardi 7 août 2007 à 19:08:23 | Re : Textarea et Replace

tinux

Membre Club
Et bien merci,par contre faut que je bidouille encore un chouilla car par défaut VS Crée une tabulation..

Je m'explique au lieu d'avoir

Public ..
    Le code..

On a :

    Public
        Le code..

Donc faut que j'ajoute indent3 et 4 en plus du 1 et 2 avec 12 et 16.. :p

1 2

Cette discussion est classée dans : créer, textarea, color, blue, hello


Répondre à ce message

Sujets en rapport avec ce message

utiliser l'objet document avec une variable passée en paramètre [ par XBenny ] Boujour à tous, Je plante le décor : J'ai un javascript qui me permet de remplir un "select" (selectAOut) en fonction d'un autre "select" (selectAIn). Un événement onInvalid ??? [ par jdmcreator ] Bonjour, Bien décidé à revisiter le javascript, j'ai découvert dans la console de Safari quelques événements inconnus pour ma part : D'abord j'ai tr Nom du site introuvable [ par ChesterMefield ] Bonjour, Je continue le travail de création du site de mon épouse : [url=http://secretxpert.perso.sfr.fr/intro.htm]Secret-Xpert[/url], site dédié aux Fermer Iframe [ par midoxe ] Bonjour les amis, je suis vraiment bloqué à cause de se problème...[^^sad1] dans une [color=blue]page1.html[/color] j'ai une image(loupe)..dès que j Probleme de fonction qui fonctionne pas [ par bmahiet ] Bonjour à tous, J'ai un probleme sur une fonction javascript qui ne fonctionne pas alors qu'ailleurs elle fonctionne je vous explique. [color=blue] Précision sur document.getElementById [ par coucoucircus ] Bonjour, J'ai un script qui fonctionne dans un formulaire (définir le nombre de passagers), mais j'aimerais faire en sorte que la manipulation soit i Problème de tri et de filtre [ par Aoigami ] Bonjour développeurs, développeuses ! Je suis une étudiante en informatique et mon entreprise m'a demandé de créer un outil en PHP/javascript :) En fin de phrase ignorée [ par danynous ] Bonjour, j'utilise ce script pour changer le fond de page sur les différentes pages de mon forum: [color=blue]if(document.location.pathname=="/t1-tes Listes déroulantes dépendantes [ par midoxe ] Bonjour, je fais appel a vos talent en Javascript vu que je viens de commencer l'apprentissage de javascript...[^^happy3] alors j'ai une liste dérou Je voudrais créer une classe Infobulle. [ par sacapuss2 ] Bonsoir... Je voudrais créer une classe Infobulle. Comment faire en sorte qu'Infobulle soit une sous-classe de Node ? Comment spécifier le tagName


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales