Crash Visual Studio en VB.NET [Résolu/Fermé]

Signaler
Messages postés
232
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
1 août 2019
-
Messages postés
232
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
1 août 2019
-
Bonjour amis programmeurs,

Depuis quelques temps je travaille sur un logiciel de gestion de compte bancaire. Un ami m'a demandé de lui créer une application pour qu'il arrive à gérer ses comptes facilement lors de chaque achat qu'il fait. Bref.

J'ai fait l'application mais il m'a fallu créer un gros code, une simple condition mais j'ai du créer en parallèle un logiciel pour généré le code que j'avais besoin. Je me retrouves avec un code très simple mais qui fait 23.245 lignes.

Le problème, c'est que maintenant quand j'ouvres mon projet, Visual Studio crash quelques secondes après. Le logiciel ne répond plus et finit par s'arrêter en mode "barbare".

Y a-t-il un moyen de faire en sorte que Visual Studio n'analyse pas ce fameux fichier Module et éviter que cela crash à nouveau ?

Merci d'avance les amis !



2 réponses

Messages postés
15797
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 avril 2021
685
Bonsoir

il suffit de le mettre dans un autre répertoire.
VS va te signaler son absence.

Par contre 23 000 lignes c'est plutôt un petit projet, VS ne devrait pas planter juste pour ça.

Messages postés
15797
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 avril 2021
685
OK le max c'est 60 000, mais t'as peut être aussi un problème de conception.
Si on suppose que tu as respecté le principe d'une classe par fichier, ça fait une classe énorme.

Mais c'est peut être ton fichier solution qui est cassé, essaye de créer un nouveau projet, importe un a un les fichiers de code et voie si ça marche.
Messages postés
232
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
1 août 2019
22
Justement j'ai essayer de copier/coller le code ans un nouveau projet et à vrai dire le problème persiste. Malheureusement je penses que la seul solution est d'essayer avec une autre version de Visual Studio.

Le problème était sur Visual Studio 2015. Actuellement je suis en train de télécharger la version gratuite de Visual Studio 2017. Si le problème persiste de nouveau j'essayerais Visual Studio 2010.

Et si par malchance mon problème ne se résous pas... J'essayerais de pleureur et me rouler par terre. Haha

Je te tiens au jus. :)
Messages postés
232
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
1 août 2019
22
Voici la première version de la condition : https://pastebin.com/4GPn0X4W

Je n'ai pas pu publier la dernière version de ma condition mais imaginez tout simplement ça :

My.Settings.sys_namevalidation = True


Après chaque :

Then 'Avec un retour à la ligne


et en fin de code :

Else
My.Settings.sys_namevalidation = False
Messages postés
232
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
1 août 2019
22
PS : Je penses que ça tombe sous le sens mais je préfère préciser :

Module prenomdetection
    Public Sub DetectionPrenomsStart()

'La condition se trouve ici

        End If
    End Sub
End Module
Messages postés
15797
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 avril 2021
685
Clairement c’est mal codé, on y reviendra plus tard.

Pour l’instant, il faut voir si ton fichier n’est pas corrompu.
Essaye de l’ouvrir avec le bloc note.
Messages postés
15797
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 avril 2021
685
En attendant que tu fasses le test demandé à 19:48.

Pourquoi c'est mal codé, la première raison tester 23000 cas "en dur" dans le code est complètement aberrant.
Je comprends maintenant pourquoi tu as cette idée tordue de te faire un générateur de code.
Ce que je ne comprends pas par contre, c'est pourquoi tu n'as pas réfléchi que s'il te faut un générateur de code, y'a peut-être un problème....

Quand tu as quelques cas (20 - 30 max), plutôt que des cascades de if tu peux faire un select case
			Dim aTester As String = "Coucou"
			Select Case aTester
				Case "toto", "tata", "titi"
					'action 1

				Case "Coucou"
					'action 2

				Case Else
					'action par défaut

			End Select


Mais avec 23 000 cas à tester, avec en plus, seulement 2 résultats possibles (vrai ou faux), la bonne solution est de mettre tes 23 000 cas positifs dans une "base de données" (un simple fichier texte => un mot par ligne peut faire l'affaire) et de tester la présence du mot dedans.

Pour l'exemple, soit le fichier texte

Mot1
Mot2
Mot3
Mot4


			Dim lesMots() As String = File.ReadAllLines("lesMotsAArion.txt")
			If lesMots.Contains("MotATrouver") Then
				'truc à faire si c'est vrai
			Else
				'truc à faire si c'est faux
			End If


Messages postés
232
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
1 août 2019
22
Non, mon fichier n'est pas corrompu.
Je vais essayer ça et je te dis, merci.