Parser de fichier javascript v2

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 457 fois - Téléchargée 40 fois

Contenu du snippet

Ce bout de code vous permet d'extraire les noms de toutes les fonctions d'un fichier javascript. Fichier est votre fichier .js et list1 est la liste qui va contenir ensuite tous les noms.

Source / Exemple :


Open fichierSource For Input As #1 ' fichier = votre fichier javascript
Do Until EOF(1)
Input #1, ligne
If InStr(ligne, "function") Then
'function présente
'extraction de la partie droite
strFonction = Right(ligne, Len(ligne) - Len("function"))
'extraction du nom seulement
temp = InStr(strFonction, "(")
temp = Len(strFonction) - temp
'on enlève les arguments
strFonction = Left(strFonction, Len(strFonction) - temp - 1)
List1.AddItem strFonction
End If
Loop
Close #1

Conclusion :


Ceci permet d'extraire seulement les noms, pour les instructions, attendez un peu ...

A voir également

Ajouter un commentaire

Commentaires

SibosisITS
Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003
-
Tu ne penses pas qu'il y a quelque petits problèmes ?...
Exemple :

ligne="function nom_de_fonction (x,y,z) {var a=x,b=(y+z); a*b;}"

...ma ligne contient une fonction entière, et la syntaxe est tout à fait correct.
Cependant, ton programe, ici, ne récupère pas

"nom_de_fonction (x,y,z)"

comme je pourrais l'espérer, mais

" nom_de_fonction (x,y,z) ) {var a=x,b=(y+z); a*b"

Le problème réside dans le fait que tu as considéré que les fonctions étaient toutes formatées comme suit :

function nom_de_fonction (x,y,z) {

...
}

...ce qui n'est pas obligatoire... De plus suppose qu'à la lecture de la ligne, on ait

ligne= " function nom_de_fonction ..."

ta fonction récupère alors la chaîne

"ction nom_de_fonction ..."

à cause des cinqs espaces qui se trouvent en tête de chaîne... mais cela peut être réglé facilement en supprimant à l'aide d'une boucle, les espaces en début de chaîne...

Autre problème :

ligne = "function nom_f1 (...) {...};function nom_f2 (...) {...}"

à supposer que les problèmes précédents aient été résolues, avec ton programme, seule la première des deux fonctions sera récupérée...

Sinon, l'idée du programme est très intéressante, et peut se révéler très pratique...

... à suivre ...

q°: Sibo :°p
leptidev
Messages postés
206
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2007
-
C'est vrai que j'avais pas trop penser à ça,en fait cette partie de code fait partie d'un programme entier, et un ami m'a demandé de l'afficher, en fait mon programme est un éditeur de fichier JS donc le formatage de ce fichier se fait selon son ordre.
Seul problème : si l'utilisateur le modifier sans passer par mon éditeur...
leptidev
Messages postés
206
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2007
-
Dans ma nouvelle version, une fois que fonction a été trouvé, il ne considère plus ce mot comme important, c'est à dire qu'il ne le prend en compte une seule fois.
Il attent le commentaire <!--fin--> pour stopper la boucle

Merci de ta remarque
cs_Mercury
Messages postés
329
Date d'inscription
jeudi 3 janvier 2002
Statut
Membre
Dernière intervention
7 octobre 2005
-
Quand on voit ce que tu postes comme "source", moi à ta place je ne me permettrait pas de critiquer les autres !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.