IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Basic Discussion :

[FBide] Recherche dans un carnet d'adresses


Sujet :

Basic

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut [FBide] Recherche dans un carnet d'adresses
    Bonjour à toutes & à tous,

    1 - Je ne sais pas trop si je suis dans la bonne section mais apparemment, il n'y a point de section "Basic"

    2 - J'explique le but de mon post, je commence à peine ce langage de programmation (Basic) avec un logiciel gratuit "FBide" & voici mon problème :

    Je tente de créer un logiciel de carnet d'adresses pour m'entraîner donc tout va bien, je sais :

    - Créer un contact dans un fichier
    - Supprimer ce même fichier
    - Afficher tout les contacts, mais pas les rechercher.

    Je m'explique si je crée 500 contacts, je ne sais que les afficher TOUS, ce qui n'est pas tres pratique...

    Ce que je cherche c'est une commande qui me permets en tapant le nom d'un contact, d'afficher sa fiche...

    Voila, j'espere avoir été clair
    Si ce n'est pas le cas, veuillez m'en excuser & n'hésitez pas a me poser des questions.

    Merci.

  2. #2
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    salut

    ici c'est le forum c#.
    le forum basic est ici : http://www.developpez.net/forums/f50...angages/basic/ (EDIT: déplacé)

    pour répondre à ta question, as-tu essayé de créer une base de données, et un schéma de base de données correspondant à ton applicatif ? ce sera largement plus rapide au niveau execution.

    Mais pour rechercher tes contacts, il va te falloir charger tous tes fichiers en mémoire (ou analyser séquentiellement un par un tes fichiers) ensuite comparer avec ta recherche et l'afficher.

    j'espère t'avoir un peu aidé ou orienté...
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Merci d'avoir déplacé mon sujet & de la réponse rapide.

    Alors en fait la base de données est crée, ce qui me manque en fait & que je ne trouve pas, c'est les lignes de commandes pour rechercher dans cette fameuse base

    Merci.

  4. #4
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    là il va falloir faire des recherches sur le sql...
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Ok, merci.

    J'oriente donc mes recherches vers le Sql

    Bon Week-End

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Citation Envoyé par gmcc34 Voir le message
    J'oriente donc mes recherches vers le Sql
    hopopopop, du calme...

    A te lire, j'ai l'impression que tu ne sais pas trop ce que c'est que le sql, et que donc ta base de données ne doit pas être basée là-dessus... me trompe-je?

    Le cas échéant, ce serait bien de nous expliquer à quoi elle ressemble... sinon, je n'ai rien dit!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Comme dis dans mon premier post, je débute vraiment en programmation, j'ai juste quelque base en informatique.

    Je sais ce qu'est le sql, mais je ne le maîtrise pas

    En fait mon fichier contient deux champ :

    - le premier "Nom", uniquement du texte
    - le deuxième "N° de téléphone", uniquement des chiffres.

    Exemple :

    "Toto" 06060606
    "Tata" 06070707

    Voila ca je sais faire.

    Mon but étant de pouvoir en tapant : "Toto" n'afficher QUE les donnes de "Toto" soit "06060606".

    Et ce qui me manque c'est "la commande" comme print/cls/input/etc...

    Je tient à préciser que ce programme ne sert qu'à m'aider à comprendre le fonctionnement du langage BASIC & m'entraîner.

    Merci.

  8. #8
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Bon, au vu de ta réponse, je présume que tu n'utilises pas de base de données Sql donc. Quand tu parles de fichier, c'est un fichier texte, c'est ça? (essaye d'être précis dans tes réponses, au vu de toutes les technos possibles, ça élaguera les réponses adéquates )

    Citation Envoyé par gmcc34 Voir le message
    Et ce qui me manque c'est "la commande" comme print/cls/input/etc...
    éh éh, ça, je crois que tu ne vas pas l'avoir cette commande magique. A moins que ta version de basic ne l'aie. D'ailleurs ça serait bien de savoir avec quoi tu travailles exactement.

    Sinon, il va te falloir programmer ça toi-même. Donc un peu de réflexion, un petit algo, et ça devrait aller. Genre une petite boucle qui parcourt tous les éléments, et qui s'arrête dès qu'elle tombe sur le bon nom.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par plegat Voir le message
    Bon, au vu de ta réponse, je présume que tu n'utilises pas de base de données Sql donc.
    Citation Envoyé par gmcc34 Voir le message
    Comme dis dans mon premier post, je débute vraiment en programmation, j'ai juste quelque base en informatique.

    Je sais ce qu'est le sql, mais je ne le maîtrise pas
    Non, non, je n'utilise pas de base de données Sql

    Citation Envoyé par plegat Voir le message
    Quand tu parles de fichier, c'est un fichier texte, c'est ça? (essaye d'être précis dans tes réponses, au vu de toutes les technos possibles, ça élaguera les réponses adéquates )
    Oui, c'est un fichier ".txt", qui se présente ainsi :

    TOTO 1223
    TATA 4432

    Citation Envoyé par plegat Voir le message
    D'ailleurs ça serait bien de savoir avec quoi tu travailles exactement.
    Citation Envoyé par gmcc34 Voir le message
    2 - J'explique le but de mon post, je commence à peine ce langage de programmation (Basic) avec un logiciel gratuit "FBide"
    Citation Envoyé par plegat Voir le message
    Sinon, il va te falloir programmer ça toi-même. Donc un peu de réflexion, un petit algo, et ça devrait aller. Genre une petite boucle qui parcourt tous les éléments, et qui s'arrête dès qu'elle tombe sur le bon nom.
    Parfait, merci beaucoup pour vos réponses, mais un algo, où même une boucle je ne maîtrise pas encore Sauriez vous ou trouver un tuto qui explique cette technique ?

    P.s. :
    Merci vraiment à vous de prendre le temps de me répondre aussi vite & aussi précisément.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Grosse avancée, TRES grosse avancée !!!

    Alors, suite à vos posts qui m'ont été d'une aide précieuse, j'ai donc tenté de faire cet "algo", qui est -presque- une franche réussite.

    Je m'explique : mon fichier (au format .txt) se présente donc toujours ainsi :

    TOTO 123
    TATA 456
    TITI 789

    J'ai donc réussi à faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    500 CLS : PRINT "RECHERCHE DE CONTACT"
    510 INPUT "QUEL EST LE NOM "; NOM$
    520 OPEN "CARNET.TXT" FOR INPUT AS #1
    530 LINE INPUT #1, LIGNE$
    540 IF NOM$=LIGNE$ THEN PRINT LIGNE$ : SLEEP
    550 CLOSE #1 : GOTO 500
    Ce qui me permets de taper le nom d'un contact & si ce contact est le premier de la ligne d'afficher son nom mais UNIQUEMENT le premier de la liste

    Je me demande donc ou je pourrais bien placer la fonction (loop ? eof ?) qui me permettras de lire TOUT les contacts, pas uniquement le premier....

    Voilà. Encore merci à vous tous pour vos précieux conseils.

    P.s. : Excusez ma manière de programmer qui peut paraître mauvaise à vos yeux aguerris mais je ne "pratique" le BASIC que depuis 8 jours...

  11. #11
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par gmcc34 Voir le message
    Je me demande donc ou je pourrais bien placer la fonction (loop ? eof ?) qui me permettras de lire TOUT les contacts, pas uniquement le premier....
    Il te faut repérer les lignes (de code) qui devront être répétées pour les autres lignes (du carnet d'adresse).
    En l'occurence, les lignes 530 et 540 là. Il va donc falloir les mettre dans une boucle, sans doute une boucle while (je ne connais pas FreeBasic donc je te laisse faire le tour des possibilités). La condition d'arrêt sera donnée par eof, qui indiquera la fin du fichier.

    En gros, ça devrait donner un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Do While Eof(1) = 0
        LINE INPUT #1, LIGNE$
        IF NOM$=LIGNE$ THEN PRINT LIGNE$ : SLEEP
    Loop
    A tester bien évidemment, et ne pas hurler si ça ne fonctionne pas!

    Si tu maitrises l'anglais, n'hésite pas à aller faire un tour sur les forums FreeBasic
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par plegat Voir le message
    Il te faut repérer les lignes (de code) qui devront être répétées pour les autres lignes (du carnet d'adresse).
    En l'occurence, les lignes 530 et 540 là. Il va donc falloir les mettre dans une boucle, sans doute une boucle while (je ne connais pas FreeBasic donc je te laisse faire le tour des possibilités). La condition d'arrêt sera donnée par eof, qui indiquera la fin du fichier.

    En gros, ça devrait donner un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Do While Eof(1) = 0
        LINE INPUT #1, LIGNE$
        IF NOM$=LIGNE$ THEN PRINT LIGNE$ : SLEEP
    Loop
    Ok, je comprends merci beaucoup, je teste de suite

    Citation Envoyé par plegat Voir le message
    A tester bien évidemment, et ne pas hurler si ça ne fonctionne pas!
    Quoi ??? Que dites vous ??? Cela risque de ne pas marcher ?!?!? Quelque chose réalisé sur votre temps libre & gratuit qui ne fonctionnerais pas ??? Tout simplement honteux !

    P.s. : Je blague

    Citation Envoyé par plegat Voir le message
    Si tu maitrises l'anglais, n'hésite pas à aller faire un tour sur les forums FreeBasic
    Merci pour le lien, je ne connaissais pas j'y fais un tour de suite & je revient pour hurler , euh non, pour vous tenir au courant des avancées.

    A bientôt.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    FINI !!!! YOUPI !!!! YEEEEAHHHH !!!!

    Ok, je sais, je sais ce n'est pas grand chose mais bon ca fait plaisir

    Alors voici la "solution" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    500 CLS : PRINT "RECHERCHE DE CONTACT"
    510 INPUT "QUEL EST LE NOM "; NOM$
    520 OPEN "CARNET.TXT" FOR INPUT AS #1
    530 LINE INPUT #1, LIGNE$
    540 IF NOM$=LIGNE$ GOTO 545 ELSE GOTO 530
    545 PRINT LIGNE$ : SLEEP
    550 CLOSE #1 : GOTO 500
    C'est pô bô ca ??

    Merci à toutes & à tous de votre aide si précieuse, du temps que vous avez passez à m'aider ainsi que de vos réponses clairs & précises même pour un débutant comme moi

    P.s. : Si ce code vous semble "moche", n'hésitez pas à m'expliquer ce qui vous choque

    Merci encore & bonne journée !!!

  14. #14
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par gmcc34 Voir le message
    P.s. : Si ce code vous semble "moche", n'hésitez pas à m'expliquer ce qui vous choque
    Il n'est pas moche, c'est juste du basic!
    Je taquine... mais c'est vrai que le basic "de base" fait écrire du code pas beau souvent...

    Seul soucis avec ton code... que se passe-t-il si on rentre un nom qui n'est pas dans le carnet?
    Disons que ça, c'est le niveau suivant quand tu programmes. Faire du code "robuste" comme on dit, c'est à dire qui ne déclenchera pas une erreur (et pour tester ça, il faut se changer en utilisateur de base qui ne connait rien au programme et va donc faire des bêtises!)

    Mais bon, ça viendra au fur et à mesure, avec l'expérience. Commence déjà par maitriser les principales instructions du langage en faisant des petits programmes simples.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Il n'est pas moche, c'est juste du basic!
    Rooooh

    Seul soucis avec ton code... que se passe-t-il si on rentre un nom qui n'est pas dans le carnet?
    J'ai testé & ça coince, donc je solutionne le problème par cet ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF je suis le seul à utiliser le programme, pas de problème ELSE tant pis
    Non, je blague en tout cas, dès que l'amélioration sera faite, je le mets en ligne promis

    Merci encore à vous tous !!!! & bonne journée.

    Edit le 29/04/09 à 14h16 :

    C'est mieux ? Même si ca reste du BASIC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    500 CLS : PRINT "RECHERCHE DE CONTACT"
    501 PRINT ""
    502 PRINT "Pour revenir au menu taper 1"
    503 PRINT ""
    510 INPUT "QUEL EST LE NOM "; NOM$
    511 PRINT ""
    512 IF NOM$="1" GOTO 10
    520 OPEN "CARNET.TXT" FOR INPUT AS #1
    521 DO UNTIL EOF(1)
    530 LINE INPUT #1, LIGNE$
    540 IF NOM$=LIGNE$ GOTO 545
    541 LOOP
    545 PRINT LIGNE$ : SLEEP 2000
    550 CLOSE #1 : GOTO 500
    Maintenant plus de soucis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/07/2010, 09h02
  2. Recherche de contact dans un carnet d'adresse partagé
    Par ange_dragon dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/11/2009, 11h28
  3. Suppression de doublons dans mon carnet d'adresse
    Par gege87270 dans le forum Outlook
    Réponses: 1
    Dernier message: 26/11/2007, 12h26
  4. Réponses: 6
    Dernier message: 18/06/2007, 16h07
  5. Recherche script PHP carnet d'adresses
    Par raffa dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/05/2006, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo