UTILITAIRE DE COPIE DE FICHIERS, APPLICATION CONSOLE, VISUAL BASIC
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
5 juin 2007 à 11:28
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
10 juin 2007 à 14:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 10 juin 2007 à 14:20
La discussion sur ce sujet s'arrête ici, merci de votre compréhension.
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 10 juin 2007 à 13:44
Une de mes sources montre que OneHacker n'a JAMAIS tort lol, meme apres une innondation d'arguments PERTINENTS... laissez tomber!
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 10 juin 2007 à 12:17
DIEUZORRO : Si je serait étonné si on me fait des remarques, je fait pas joujou et j'ai bien dit que c'était rare les cas ou on peut pas faire de condition ou while ou autre.
ALLTHEW3 : Je crois que c'est plutôt toi qui est de mauvaise fois mais si tu sais toujours pas à quoi sert le GOTO tant pis pour toi.
allthew3
Messages postés551Date d'inscriptionsamedi 8 janvier 2005StatutMembreDernière intervention12 avril 20082 10 juin 2007 à 11:03
lol seul contre tous, il croit encore avoir raison ...
pire que de la mauvaise foi ^^
Goto End (jamais utilisé de goto de ma vie : je sais même pas si c'est bon)
dieuzorro
Messages postés21Date d'inscriptionjeudi 6 janvier 2005StatutMembreDernière intervention14 janvier 2008 10 juin 2007 à 10:43
Moi je ne suis pas un petit géni et la programmation c'est mon métier et le Goto c'est à proscrire et on peut toujours s'en sortir avec une avec une condition. S'il est préservé c'est pour permettre de garder une certaine compatibilité et pour permettre de faire de la programmation vite fait (mal fait). Et quand on développe à plusieurs passer sur du code développé par une autre personne où il y a des sauts de partout c'est la galère à débuguer. Bref il y a des règles de bonne programmation qu'il ne faut pas ignorer. Mais tu peux continuer à faire joue joue sur tout PC mais ne t'étonne pas d'avoir des remarques sur ton code quand tu le publie.
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 9 juin 2007 à 22:02
Déjà l'IDE VS 2005 Express détexte les erreurs d'avance et les soulignes si le goto est pas bon.
Ensuite moi aussi j'ai utilisé des GOTO et j'ai commencé le Basic à l'âge de 8 ans et j'arrête pas depuis.
Et le goto est toujours utile dans certain cas ou on une condition ou autre n'est pas possible.
allthew3
Messages postés551Date d'inscriptionsamedi 8 janvier 2005StatutMembreDernière intervention12 avril 20082 9 juin 2007 à 19:52
ah voilà ^^ enfin une explication correcte
en bref, le goto c'est mort depuis longtemps et c'est dommage que certains l'utilise ou le défende!
sur ce, @+
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 9 juin 2007 à 19:50
OneHacker, j'ai appris à programmer en basic sur CPC6128, j'ai utilisé plus de goto et de gosub que tu ne pourras jamais imaginer en utiliser de toute ta vie parce que les imbrications de code et les procédures n'existaient pas. Je pense ne donc pas avoir besoin d'apprendre à quoi ça sert.
Maintenant qu'on n'en a plus besoin pour faire des programmes, il est plus qu'absurde de continuer à les utiliser. La raison est simple : tu ne sais pas quel va être le comportement de ton programme lorsque tu rentres dans un morceau de code où la portée de tes variables est différente, où tu es dans une boucle, où tu es dans un bloc construit.
C'est vrai on peut les utliser, et les obscurciceurs de codes ne s'en privent pas.
L'exemple typique de ce qu'il ne faut pas faire, c'est ça
dim x as integer
do while x < 10
dim y as integer = x
label:
debug.print y
x+=1
loop
goto label
le programme t'affiche tous les nombre de 1 à 10... et après ?
Un programme équivalent sur un amstrad t'aurais fait une belle erreur "LOOP without a DO" juste pour t'apprendre à programmer.
J'ai appris à faire des programmes corrects après avoir écrit des absurdités pareilles. Depuis l'apparition des mots clef sub et function, je n'ai plus écrit des gotos que pour les gestions d'erreurs. Depuis l'arrivée du merveilleux bloc try/catch, la commande est devenue réellement obsolète et aurait du disparaître.
allthew3
Messages postés551Date d'inscriptionsamedi 8 janvier 2005StatutMembreDernière intervention12 avril 20082 9 juin 2007 à 19:20
lol t'as deja vu beaucoup de goto dans des sources faites par des professionels ?
je sais même pas s'il y n'a un seul !
je te laisse avec ton goto, fais ce que tu veux c'était une remarque, prends la mal je m'en fou moi ^^
bonne programmation (avec ou sans goto)
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 9 juin 2007 à 19:11
C'est aussi une instruction VB6. ce n'est pas une mauvaise habitude. Et je vois pas le rapport avec sub, if, select case. car ce sont des conditions qui font un saut mais des fois ont doit faire un saut très loin dans les code qui fait pas partie de la condition ou procédure c'est pour ça que le goto existe et non pas pour rien.
allthew3
Messages postés551Date d'inscriptionsamedi 8 janvier 2005StatutMembreDernière intervention12 avril 20082 9 juin 2007 à 14:46
le goto est une instruction VB6. elle est uniquement là pour la compatibilité
un bon programmeur utilisera des Sub, Functions, ... (if then, case ...)
mais bon, comme on dit, chacun ses mauvaises habitudes !
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 9 juin 2007 à 12:54
Bah oui, c'est écrit (sur les livres)! XD
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 8 juin 2007 à 20:51
lol, ça s'enflamme ici...
un effort d'orthographe serait à prévoir pour certains...
et je peux pas m'empecher, cite : "apparemment vous savez pas à quoi ça sert et ben je vous explique que cela permet de faire un saut"
J'adore lol...
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 7 juin 2007 à 16:50
Ce n'est pas mon programme est personne n'a vu mon programme où j'utilise goto. Car il est que sur mon ordi.
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 7 juin 2007 à 14:44
J'ai lu ton programme et... le goto ne sert strictement à rien
En effet, soit le fichier n'existe pas, et il ne sert à rien de revenir executer la ligne où il va commencer à lire dedans, soit tu a déjà commencé à lire dedans, et dans ce cas, le message qui s'affiche est faux (le fichier existe) : il faudrait un try/catch à l'interieur du do/while pour gérer les erreurs.
Avant de dire que je suis ridicule, revoit la logique fonctionnelle de ton programme.
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 7 juin 2007 à 12:46
Warny, t'es ridicule, et apparemment vous savez pas à quoi ça sert et ben je vous explique que cela permet de faire un saut, je l'utilise rarement mais dans un programme j'ai besoin de faire un saut car il n'y a pas d'autre moyen de le faire.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 7 juin 2007 à 10:20
Je ne suis pas tout à fait d'accord à vous: j'utilise également rarement le goto (pour ne pas dire jamais), mais dans de rares situations il peut tout de même être pratique sans "mettre un bazar monstrueux". Dans le cas, par exemple, où on a plusieurs boucle imbriquée l'une dans l'autre et qu'on veut quitter une boucle interne (ça évite de mettre une série de boolean).
Evidemment, à utiliser avec beaucoup de modération et en connaissance de cause.
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 7 juin 2007 à 09:25
Si j'ai trouvé à quoi ça sert : à obscurcir le code lors d'une obsfuscation !
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 7 juin 2007 à 09:23
J'adore l'argument, c'est comme pour l'homéopathie pour une grippe (par exemple), c'est dire, ça marche puisque je suis guéri, alors que si on avait rien pris, on aurait été guéri de toute façon.
Goto, c'est pareil, c'est un placébo, ça sert à faire croire qu'un programme fonctionne, mais en cas de panne, c'est indéboggable.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 7 juin 2007 à 09:16
Si ça existe encore, c'est juste pour uns compatibilité ascendante, tu peux voir mes programmes (même ceux sur mon site), il n'y en a aucun qui utilise GOTO (sauf pour la gestion d'erreur sous VB6, On error goto).
Goto n'est pas une bonne instruction pour programmer dans un langage évoluer, ce la créé un code spaghetti rapidement illisible.
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 7 juin 2007 à 09:03
Pas la peine puisqu'on s'est que c'est utile autrement ca existerait pas.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 7 juin 2007 à 08:09
Il est possible de créer un nouveau sujet sur le thème "L'instruction Goto est-elle encore utile en VB.NET" :)
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 6 juin 2007 à 19:27
Bah si qu'elle devrait exister, et ca marche dans un try catch.
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 6 juin 2007 à 10:38
Dans un langage structuré, le goto est susceptible de mettre un bazar monstrueux.
Ici ton goto arrive au beau milieu d'un bloc try/catch. Comment peux-tu être sûr qu'il sera pris en compte ?
Quid des déclarations de variable dont la porté est limité au bloc dont tu viens de sortir et de celles dont la porté est limitée au bloc où tu rentres ?
Cette instruction ne devrait même plus exister !!!
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 juin 2007 à 15:35
Je trouve toujours une solution :
- créer une fonction/sub pour le bloc de code posant le problème
- Une variable (type booléen le plus souvent) qui fait office de drapeau
- Une instruction continue/exit
Un Goto est quasi tout le temps évitable.
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 5 juin 2007 à 14:44
Ah j'avais pas compris que tu parlais de summary ^^
Euh pour le goto moi je l'utilise parceque c'est un cas spécial ou une condtition Select Case if ou autre ne me permet pas de faire un saut particulier ^^
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 juin 2007 à 13:34
OneHacker je suis syntaxiquement d'accord avec toi, mais en .NET, les usages :
Mettre les 3 ' permet de pouvoir avoir la description du membre dans un tooltip (comme pour les classes du framwork avec la description de ce que l'on fixe).
''' (enter)
donne un truc du genre :
'''<summary>
''' Description de la fonction
'''</summary>
'''<Parameter name=.....
précision, si tu bosse en :
- .NET1 (2003), il faut que tu ajoute l'extension VBCommenter pour pouvoir ajouter cette fonction.
- .NET2 (2005), C'est tout inclu dans l'EDI.
Ensuite pour le GOTO, il s'agit d'une calamité dans un langage aussi évoluer, il existe d'autre méthodes pour faire ce genre de controle :
continue
exit
...
Remarque :
select case Bouléen
case is=true
...
case is=false
...
end select
peut se remplacer par :
if Bouléen Then
...
Else
...
End if
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 septembre 20072 5 juin 2007 à 13:18
nHenry, si on peut utiliser GOTO dans une application VB.Net et un ' suffit pour les remarques, ca sert à rien d'en mettre 3
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 juin 2007 à 11:28
Bonjour,
Quelques remarques :
- Que vois-je ??? GoTo Processing !!!!!!!!!
Pas de GOTO dans une application VB.NET, utilise une autre méthode.
- Utilise les 3 ' (''') pour décrire tes méthodes.
10 juin 2007 à 14:20
10 juin 2007 à 13:44
10 juin 2007 à 12:17
ALLTHEW3 : Je crois que c'est plutôt toi qui est de mauvaise fois mais si tu sais toujours pas à quoi sert le GOTO tant pis pour toi.
10 juin 2007 à 11:03
pire que de la mauvaise foi ^^
Goto End (jamais utilisé de goto de ma vie : je sais même pas si c'est bon)
10 juin 2007 à 10:43
9 juin 2007 à 22:02
Ensuite moi aussi j'ai utilisé des GOTO et j'ai commencé le Basic à l'âge de 8 ans et j'arrête pas depuis.
Et le goto est toujours utile dans certain cas ou on une condition ou autre n'est pas possible.
9 juin 2007 à 19:52
en bref, le goto c'est mort depuis longtemps et c'est dommage que certains l'utilise ou le défende!
sur ce, @+
9 juin 2007 à 19:50
Maintenant qu'on n'en a plus besoin pour faire des programmes, il est plus qu'absurde de continuer à les utiliser. La raison est simple : tu ne sais pas quel va être le comportement de ton programme lorsque tu rentres dans un morceau de code où la portée de tes variables est différente, où tu es dans une boucle, où tu es dans un bloc construit.
C'est vrai on peut les utliser, et les obscurciceurs de codes ne s'en privent pas.
L'exemple typique de ce qu'il ne faut pas faire, c'est ça
dim x as integer
do while x < 10
dim y as integer = x
label:
debug.print y
x+=1
loop
goto label
le programme t'affiche tous les nombre de 1 à 10... et après ?
Un programme équivalent sur un amstrad t'aurais fait une belle erreur "LOOP without a DO" juste pour t'apprendre à programmer.
J'ai appris à faire des programmes corrects après avoir écrit des absurdités pareilles. Depuis l'apparition des mots clef sub et function, je n'ai plus écrit des gotos que pour les gestions d'erreurs. Depuis l'arrivée du merveilleux bloc try/catch, la commande est devenue réellement obsolète et aurait du disparaître.
9 juin 2007 à 19:20
je sais même pas s'il y n'a un seul !
je te laisse avec ton goto, fais ce que tu veux c'était une remarque, prends la mal je m'en fou moi ^^
bonne programmation (avec ou sans goto)
9 juin 2007 à 19:11
9 juin 2007 à 14:46
un bon programmeur utilisera des Sub, Functions, ... (if then, case ...)
mais bon, comme on dit, chacun ses mauvaises habitudes !
9 juin 2007 à 12:54
8 juin 2007 à 20:51
un effort d'orthographe serait à prévoir pour certains...
et je peux pas m'empecher, cite : "apparemment vous savez pas à quoi ça sert et ben je vous explique que cela permet de faire un saut"
J'adore lol...
7 juin 2007 à 16:50
7 juin 2007 à 14:44
En effet, soit le fichier n'existe pas, et il ne sert à rien de revenir executer la ligne où il va commencer à lire dedans, soit tu a déjà commencé à lire dedans, et dans ce cas, le message qui s'affiche est faux (le fichier existe) : il faudrait un try/catch à l'interieur du do/while pour gérer les erreurs.
Avant de dire que je suis ridicule, revoit la logique fonctionnelle de ton programme.
7 juin 2007 à 12:46
7 juin 2007 à 10:20
Evidemment, à utiliser avec beaucoup de modération et en connaissance de cause.
7 juin 2007 à 09:25
7 juin 2007 à 09:23
Goto, c'est pareil, c'est un placébo, ça sert à faire croire qu'un programme fonctionne, mais en cas de panne, c'est indéboggable.
7 juin 2007 à 09:16
Goto n'est pas une bonne instruction pour programmer dans un langage évoluer, ce la créé un code spaghetti rapidement illisible.
7 juin 2007 à 09:03
7 juin 2007 à 08:09
6 juin 2007 à 19:27
6 juin 2007 à 10:38
Ici ton goto arrive au beau milieu d'un bloc try/catch. Comment peux-tu être sûr qu'il sera pris en compte ?
Quid des déclarations de variable dont la porté est limité au bloc dont tu viens de sortir et de celles dont la porté est limitée au bloc où tu rentres ?
Cette instruction ne devrait même plus exister !!!
5 juin 2007 à 15:35
- créer une fonction/sub pour le bloc de code posant le problème
- Une variable (type booléen le plus souvent) qui fait office de drapeau
- Une instruction continue/exit
Un Goto est quasi tout le temps évitable.
5 juin 2007 à 14:44
Euh pour le goto moi je l'utilise parceque c'est un cas spécial ou une condtition Select Case if ou autre ne me permet pas de faire un saut particulier ^^
5 juin 2007 à 13:34
Mettre les 3 ' permet de pouvoir avoir la description du membre dans un tooltip (comme pour les classes du framwork avec la description de ce que l'on fixe).
''' (enter)
donne un truc du genre :
'''<summary>
''' Description de la fonction
'''</summary>
'''<Parameter name=.....
précision, si tu bosse en :
- .NET1 (2003), il faut que tu ajoute l'extension VBCommenter pour pouvoir ajouter cette fonction.
- .NET2 (2005), C'est tout inclu dans l'EDI.
Ensuite pour le GOTO, il s'agit d'une calamité dans un langage aussi évoluer, il existe d'autre méthodes pour faire ce genre de controle :
continue
exit
...
Remarque :
select case Bouléen
case is=true
...
case is=false
...
end select
peut se remplacer par :
if Bouléen Then
...
Else
...
End if
5 juin 2007 à 13:18
5 juin 2007 à 11:28
Quelques remarques :
- Que vois-je ??? GoTo Processing !!!!!!!!!
Pas de GOTO dans une application VB.NET, utilise une autre méthode.
- Utilise les 3 ' (''') pour décrire tes méthodes.
- Pourquoi c'est en anglais ?
@+