Prg de vérification des accolades
Sdija
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
gummy -
gummy -
Bonjour tout le monde;en
Je voudrais bien savoir comment réaliser un programme qui nous permettera de vérifier l'existance des accolades et les parenthèses dans un programme source et de déterminer sa position.
Merci d'avance
Je voudrais bien savoir comment réaliser un programme qui nous permettera de vérifier l'existance des accolades et les parenthèses dans un programme source et de déterminer sa position.
Merci d'avance
Configuration: Windows XP Internet Explorer 7.0
A voir également:
- Prg de vérification des accolades
- Vérificateur des fichiers système - Guide
- Verification lien internet - Guide
- Verification compatibilité windows 11 - Guide
- Ps4 verification de l'etat du stockage ✓ - Forum PS4
- Linkedin procédons à une petite vérification de sécurité ✓ - Forum Réseaux sociaux
2 réponses
On sait jamais, si quelqu'un tombe ici...
On peut simplement parcourir le fichier texte ligne par ligne grâce à une boucle. Quand on repère une accolade ou une parenthèse dans la ligne en cours, on augmente un compteur pour obtenir le nombre d'accolades, de parenthèses, ou que sais-je, et on mémorise le tour de boucle pour savoir à quelle ligne elle se trouve.
Ainsi, on a une boucle, qui lit tout le fichier ligne par ligne, qui vérifie sur la ligne si il existe un caractère spécial ({, }, (, ), [, ], ...) et qui compte leur nombres. On peut ainsi différencier les symboles et utiliser un compteur pour les symboles ouvrants ({, (, [,...) et un pour les symboles fermants (}, ), ],...) comme ça on peut vérifier si il y bien le même nombre d'ouvrants et de fermants, ce serait déjà super intéressant.
On peut simplement parcourir le fichier texte ligne par ligne grâce à une boucle. Quand on repère une accolade ou une parenthèse dans la ligne en cours, on augmente un compteur pour obtenir le nombre d'accolades, de parenthèses, ou que sais-je, et on mémorise le tour de boucle pour savoir à quelle ligne elle se trouve.
Ainsi, on a une boucle, qui lit tout le fichier ligne par ligne, qui vérifie sur la ligne si il existe un caractère spécial ({, }, (, ), [, ], ...) et qui compte leur nombres. On peut ainsi différencier les symboles et utiliser un compteur pour les symboles ouvrants ({, (, [,...) et un pour les symboles fermants (}, ), ],...) comme ça on peut vérifier si il y bien le même nombre d'ouvrants et de fermants, ce serait déjà super intéressant.
Voici la solution en perl (il suffit de modifier le chemin du fichier à analyser au début du script) :
__________________________________________________
__________________________________________________
Ce code analyse donc un fichier de code et analyse le nombre de symboles spéciaux et affiche ces nombres. Si par exemple le nombre d'un symbole ouvrant et le nombre du même symbole fermant sont différents, c'est qu'il en manque quelque part dans le code. Exemple de résultat :
Dans l'exemple ci-dessus, on peut voir que les nombres pour les parenthèses ouvrantes et fermantes est différent : il manque deux parenthèses fermantes dans le code.
Voilà, j'espère vous avoir été utile :)
__________________________________________________
#!/usr/bin/perl
$file = "/mydirectory/myscript.pl";
$file_content;
open (TXTFILE, $file) || die "Cannot open the file $file : $!";
while (<TXTFILE>)
{
$file_content .= $_;
}
close (TXTFILE);
$left_ps =()= $file_content =~ m{\(}g;
$right_ps =()= $file_content =~ m{\)}g;
$left_bs =()= $file_content =~ m{\{}g;
$right_bs =()= $file_content =~ m{\}}g;
$left_cs =()= $file_content =~ m{\[}g;
$right_cs =()= $file_content =~ m{\]}g;
$breakpoints =()= $file_content =~ m{;}g;
$display = << "EOP";
CODE CHECKING COMPLETE - RESULTS
=====================================
( : $left_ps
) : $right_ps
{ : $left_bs
} : $right_bs
[ : $left_cs
] : $right_cs
; : $breakpoints
EOP
print $display;
print "\n\n-> DONE <-\n\n";
__________________________________________________
Ce code analyse donc un fichier de code et analyse le nombre de symboles spéciaux et affiche ces nombres. Si par exemple le nombre d'un symbole ouvrant et le nombre du même symbole fermant sont différents, c'est qu'il en manque quelque part dans le code. Exemple de résultat :
[root@home]# perl codeChecker.pl
CODE CHECKING COMPLETE - RESULTS
=====================================
( : 945
) : 943
{ : 738
} : 738
[ : 279
] : 279
; : 757
-> DONE <-
Dans l'exemple ci-dessus, on peut voir que les nombres pour les parenthèses ouvrantes et fermantes est différent : il manque deux parenthèses fermantes dans le code.
Voilà, j'espère vous avoir été utile :)