minimoix
Messages postés6Date d'inscriptionmardi 10 mai 2016StatutMembreDernière intervention28 mai 2016
-
28 mai 2016 à 14:03
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024
-
8 juin 2016 à 16:27
salut tout le monde bon j'avance un peu dans mon programme de répertoire téléphonique mais je suis toujours bloqué! j'ai quelques erreur mais je ne sais pas comment les corriger merci votre aide!!
ça me dit:
que la fonction téléphone ne retourne aucune valeur
que la valeur nomlu, prenomlu et tellu est passé par référence avant qu'une valeur ne lui est été assignée
Module Module1 Function telephone(ByVal nom As String, ByVal prenom As String) As String If Not existe(nom, prenom) Then telephone = "non trouvé" Else Dim fichierrepertoire As Integer Dim nomlu, prenomlu, tellu fichierrepertoire = FreeFile() FileOpen(fichierrepertoire, "c:\users\simon\desktop\repertoire.txt", OpenMode.Input) While Not EOF(fichierrepertoire) Input(fichierrepertoire, nomlu) Input(fichierrepertoire, prenomlu) Input(fichierrepertoire, tellu) If nomlu = nom And prenomlu = prenom Then telephone = tellu
End If End While FileClose(fichierrepertoire) End If End Function
Function existe(ByVal nom As String, ByVal prenom As String) As Boolean If Dir("c:\users\simon\desktop\repertoire.txt") = "" Then existe = False Else Dim fichierrepertoire As Integer Dim nomlu, prenomlu, tellu As String, trouvé As Boolean fichierrepertoire = FreeFile() FileOpen(fichierrepertoire, "c:\users\simon\desktop\repertoire.txt", OpenMode.Input) trouvé = False While Not EOF(fichierrepertoire) And Not trouvé Input(fichierrepertoire, nomlu) Input(fichierrepertoire, prenomlu) Input(fichierrepertoire, tellu) If nomlu = nom And prenomlu = prenom Then trouvé = True End If End While FileClose(fichierrepertoire) existe = trouvé End If End Function
Sub ajoute(ByVal nom As String, ByVal prenom As String, ByVal tel As String) If Not existe(nom, prenom) Then Dim fichierrepertoire = FreeFile() FileOpen(fichierrepertoire, "c:\users\simon\desktop\repertoire.txt", OpenMode.Append) PrintLine(fichierrepertoire, nom, prenom, tel) FileClose(fichierrepertoire) End If End Sub Dim nom, prenom, tel Sub Main()
restaureconfig() Dim f As Integer f = FreeFile() FileOpen(f, "c:\users\simon\desktop\repertoire.txt", OpenMode.Output) PrintLine(f, "nom", "prenom", "tel") FileClose(f) sauveconfig() End Sub Sub sauveconfig() Dim fichierconfig = FreeFile() FileOpen(fichierconfig, "c:\users\simon\desktop\config.ini", OpenMode.Output) WriteLine(fichierconfig, nom, prenom, tel) FileClose(fichierconfig) End Sub
Sub restaureconfig() Dim fichierconfig As Integer fichierconfig = FreeFile() FileOpen(fichierconfig, "c:\users\simon\desktop\config.ini", OpenMode.Input) Input(fichierconfig, nom) Input(fichierconfig, prenom) Input(fichierconfig, tel) FileClose(fichierconfig) End Sub End Module
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 28 mai 2016 à 14:51
Bonjour,
ou j'ai perdu la vue, ou ne figure nulle part, dans le code montré, l'appel que tu fais de la fonction telephone ... et c'est probablement cet appel, qui est fautif ...
Tes problèmes n'ont aucun rapport avec ton titre...Il s'agit juste de syntaxe de VB.Net, ou pas d'ailleurs car le code que tu montres c'est du VB6 ou du VBA.
Afin de maximiser les chances de réponses adaptées, un titre judicieux est conseillé.
D'autre part, les règles du forum précise qu'une question ne devrait concerner qu'un problème à la fois, mais bon là c'est tellement simple....
Problème 1 Le fait que tu déclares "telephone" comme étant une Function implique que cette méthode donne un résultat, et ce quelque que soit les cas.
Or l'algorithme détecte un cas ou il n'y aura pas de résultat (même si selon toi ce cas n'est pas possible), à savoir que si tu passes dans la clause Else et que ta recherche dans le fichier ne trouve pas d'occurrence, alors ta fonction ne retournera rien, c'est cela que le compilateur te signale.
Problème 2
Dim nomlu, prenomlu, tellu 'tes variables existent mais ne valent rien
fichierrepertoire = FreeFile()
FileOpen(fichierrepertoire, "c:\users\simon\desktop\repertoire.txt", OpenMode.Input)
While Not EOF(fichierrepertoire)
Input(fichierrepertoire, nomlu)'je suppose que cette méthode nécessite que la variable vaille quelque chose, je dis que je suppose (sans trop m'avancer non plus) car tu n'as pas précisé la ligne de l'erreur ni montré le code de cette méthode.
Input(fichierrepertoire, prenomlu)'idem
Input(fichierrepertoire, tellu)'et encore idem
If nomlu = nom And prenomlu = prenom Then
telephone = tellu
End If
End While
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Bonjour, Whismeril,
Je ne sais pas sous quoi il développe (un mélange de tout ?), mais ni la méthode FileOpen, ni la méthode PrintLine ne sont connues au bataillon, tant en VB6 qu'en VBA.
Cela "sent" (peut-être ?) l'utilisation de AutoIt.
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024656
>
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018 28 mai 2016 à 16:47
Salut, uc nos message se sont croisé, j'avais laissé en plan la rédaction avant d'y revenir!
Pour ces deux méthodes, ce sont peut être aussi celles de son programme.
Bonjour, Le Pivert,
Je ne suis pas certain de ce qu'il veuille vraiment faire autre chose (y compris ce qu'il pourrait lire).
Cette discussion nous en apprend beaucoup :
http://codes-sources.commentcamarche.net/forum/affich-10064814-fichier-sequentiel Il est "scotché" à son mélange des genres, au prétexte que c'est ce qu'on lui a enseigné à ce stade.
(et je ne sais toujours personnellement pas de quel chapeau est sorti son "PrintLine")
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018 28 mai 2016 à 18:01
Dans le message que tu cites, il aurait dû suivre les conseils de NHenry. Là c'est un mélange des genres, il est difficile de l'aider!
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024656 28 mai 2016 à 17:47
Bonjour LePivert, c'est bien et que je disais, c'est un import de vb6.
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024 28 mai 2016 à 18:04
C'est exact, sur le lien et dans le paragraphe précédent, il y a la méthode a utiliser en VB.Net
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024656
>
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024 28 mai 2016 à 18:26
Une des méthodes, dans le cas qui semble être celui-ci à savoir un csv, perso j'utilise File.ReadAllLines(), puis un split.
bon alors par ou commencer ! lol
deja si je met du temps a repondre c'est parce que je cumule 3 emploi qui me prenne 80 heures par semaine en plus de mes cours(ce n'est pas une excuse mais juste une explication!)
en suite apres avoir lu tous vos commentaires, je trouve pour la plupart, que vous etes assez dur, moi qui debute dans la programmation et qui suit les cours par correspondance(c 'est a dire seul) c pas si simple! j'avais pensé que sur un forum de programmation les gens aurait ete un peu plus comprehensif et un peu plus patient , apres tout on a tous commencé a apprendre a un moment ou a un autre!
pour ce qui est de la fonction print elle fait parti de mon cours je ne l'ai pas inventé, apres j'entend bcp que je melange les genres, si vous le dites c surement vrai , pourtant je n'utilise que ce qui est ecrit dans les cours, donc je suis perdu maintenant!
apres on me renvoi bcp de lien vers des docs ou des cours mais du coups je vois pas l'interet du forum si c juste pour balancer des liens sans me les expliquer clairement!
peut etre qu'apres je n'ai pas compris moi meme le principe du forum!
en tout cas merci a ceux qui ont essayé de m'aider, mais je pense que je me debrouiller seul parce que si je dois faire le tri entre les remarque desagreable et les reproches je perds mon temps
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 Modifié par ucfoutu le 8/06/2016 à 14:42
peut etre qu'apres je n'ai pas compris moi meme le principe du forum!
C'est toi qui le dis et c'est exactement cela.
La vocation de ce forum n'est en tout état de cause pas de limiter ses propositions de solution aux connaissances acquises en cours, ni d'aider à faire un exercice scolaire ou de stage.
Certaines choses t'ont été dites et demandées. Tu n'en tiens aucun compte, au prétexte que ceci ou cela ...
Reste alors avec tes "démarches" et n'en fais pas un "cadre" que NOUS devrions observer nous-mêmes.
Ou alors : cherche l'existence d'un site du genre "fais_mes _devoirs.com" et donne-lui l'énoncé du devoir qu'il t'est demandé de faire, avec les limites qui te sont imposées pour ce faire.
Bonne chance dans tes "récoltes".
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Whismeril
Messages postés19024Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention18 avril 2024656 8 juin 2016 à 16:27
BONJOUR on est peut être désagréables quand on te dis une chose et que tu réponds à coté de la plaque, mais au moins, je commence par bonjour moi.
Le fait est que ce forum n'a pas vocation à te donner directement la solution, mais à te faire réfléchir.
On retient mieux ce que l'on a trouvé et compris par soi même, que ce qu'on a bêtement recopié.
Donc à ma première intervention, je t'ai orienté vers tes 2 problèmes.
Qu'à tu fait / essayé / compris / non compris de ce que j'ai écrit?
Car à part
ben oui je me doute bien mais je vois pas trop ce que j'aurai du rajouter, peux tu me dire ce qu'il aurait fallu mettre stp
que tu adresses à on ne sait qui, tu n'as guère donné de retour technique.
D'autre part, si ton cours fait l'erreur de t'apprendre comment faire de vb6 dans vb.net, on n'y peut rien.
Et que tu sois perdu et malheureusement logique car il s'agit de 2 philosophie différentes.
Tu peux éventuellement changer de cours.
Celui de P Lassere est pas mal, même s'i s'adressant aussi bien aux anciens vb6istes qu'aux purs débutants, et donc montre les 2 aspects.