[Basic] Concaténation et recherche d'une clé
Septenia
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Septenia Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Septenia Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
Je suis complètement ingénue en programmation Batch et il m'est demandé de faire un contrôle de données saisies par un utilisateur... Pour cela, je pense que le mieux serait de concaténer les données saisies afin d'en faire une clé et de comparer cette clé avec une liste dans un fichier texte par exemple... En théorie (et dans un autre langage) je saurais le faire mais voilà : pas sur Ms-dos... Auriez-vous des conseils ou des informations à me donner qui me permettraient de trouver comment concaténer deux mots saisis (ou des bouts de mot) puis de comparer cette clé ainsi créée à des données d'un autre fichier?
Pour exemple ( la théorie) :
Nom : Nomatoto
Prénom : Toto
Clef = concatener (nom ; prénom)
Boolean : recherche(Clef ; fichierliste.txt)
Merci !!!
Je suis complètement ingénue en programmation Batch et il m'est demandé de faire un contrôle de données saisies par un utilisateur... Pour cela, je pense que le mieux serait de concaténer les données saisies afin d'en faire une clé et de comparer cette clé avec une liste dans un fichier texte par exemple... En théorie (et dans un autre langage) je saurais le faire mais voilà : pas sur Ms-dos... Auriez-vous des conseils ou des informations à me donner qui me permettraient de trouver comment concaténer deux mots saisis (ou des bouts de mot) puis de comparer cette clé ainsi créée à des données d'un autre fichier?
Pour exemple ( la théorie) :
Nom : Nomatoto
Prénom : Toto
Clef = concatener (nom ; prénom)
Boolean : recherche(Clef ; fichierliste.txt)
Merci !!!
A voir également:
- [Basic] Concaténation et recherche d'une clé
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Formater clé usb - Guide
- Microsoft 365 basic - Accueil - Microsoft Office
- Recherche automatique des chaînes ne fonctionne pas - Guide
11 réponses
Salut
Pour la concaténation, pas de problèmes:
il suffit de mettre les deux variables côtes à côtes dans une nouvelle variable...
pour ce qui est de rechercher un texte, regarde du côté de sed15 (un équivalent windows de sed sous unix). C'est un outil à télécharger qui permet de faire ce genre de choses par scripting.
Pour la concaténation, pas de problèmes:
il suffit de mettre les deux variables côtes à côtes dans une nouvelle variable...
pour ce qui est de rechercher un texte, regarde du côté de sed15 (un équivalent windows de sed sous unix). C'est un outil à télécharger qui permet de faire ce genre de choses par scripting.
Bonjour !!!
Bon, quitte à paraitre complètement idiote, je pose quand même ma question à ta réponse....
Quand tu dis : "il suffit de mettre les deux variables côtes à côtes dans une nouvelle variable..."
ça veut dire ça? : Cle$ = nom$ prenom$ ??? (parce que j'ai essayé plusieurs choses, mais comme je ne connais pas ce langage, je ne sais pas ce qui est correcte, et là ça me dit qu'il manque une fin d'instruction, j'ai essayé les virgules, les points-virgules, les & et je suis à court d'idées....)
Pour ce qui est de sed15, je le cherche...
En tous cas, merci de ta réponse !!!
Bon, quitte à paraitre complètement idiote, je pose quand même ma question à ta réponse....
Quand tu dis : "il suffit de mettre les deux variables côtes à côtes dans une nouvelle variable..."
ça veut dire ça? : Cle$ = nom$ prenom$ ??? (parce que j'ai essayé plusieurs choses, mais comme je ne connais pas ce langage, je ne sais pas ce qui est correcte, et là ça me dit qu'il manque une fin d'instruction, j'ai essayé les virgules, les points-virgules, les & et je suis à court d'idées....)
Pour ce qui est de sed15, je le cherche...
En tous cas, merci de ta réponse !!!
Bon, quitte à paraitre complètement idiote
Non non, j'ai juste été expéditif en espérant que ça suffise :)
En fait tu fais:
(je dirai d'éviter les accents, enfin c'est ce que j'ai toujours fait par principe dans un programme ou un script mais ça marche peut être...)
Non non, j'ai juste été expéditif en espérant que ça suffise :)
En fait tu fais:
set clef = %nom%%prenom%
(je dirai d'éviter les accents, enfin c'est ce que j'ai toujours fait par principe dans un programme ou un script mais ça marche peut être...)
Salut,
et là aussi : http://www.cornerstonemag.com/sed/
Mais bon je doute que "sed" soit le filtre idéal pour ce que tu veux faire (je pencherai plus pour "grep" (utilitaire sous GNU/Linux) davantage adapté à la recherche de motif dans un fichier). Sed étant plutôt un filtre d'édition, de substitution et de suppression, même si l'on doit pouvoir arriver au résultat souhaité tout de même...
;-))
set NOM=TOTO set PRENOM=titi set NOMCOMPLET=%NOM%%PRENOM% echo %NOM% echo %PRENOM% echo echo %NOMCOMPLET% pausePour "sed15" regarde là : http://gnuwin32.sourceforge.net/packages/sed.htm
et là aussi : http://www.cornerstonemag.com/sed/
Mais bon je doute que "sed" soit le filtre idéal pour ce que tu veux faire (je pencherai plus pour "grep" (utilitaire sous GNU/Linux) davantage adapté à la recherche de motif dans un fichier). Sed étant plutôt un filtre d'édition, de substitution et de suppression, même si l'on doit pouvoir arriver au résultat souhaité tout de même...
;-))
Tout d'abord merci beaucoup de m'avoir répondu,
Le problème est que ça ne marche toujours pas, probablement parce que mes variables noms et prénoms ne sont pas remplies de la même façon que celle que vous avez présentée...
voici le programme :
**********************************************
INPUT "Votre nom ?"; nom$
INPUT "Votre prenom ?"; prenom$
set cle = %nom$%%prenom$%
***********************************************
ça me met : "attendu : expression" (en surlignant %nom$%%prenom$%)
Le problème est que ça ne marche toujours pas, probablement parce que mes variables noms et prénoms ne sont pas remplies de la même façon que celle que vous avez présentée...
voici le programme :
**********************************************
INPUT "Votre nom ?"; nom$
INPUT "Votre prenom ?"; prenom$
set cle = %nom$%%prenom$%
***********************************************
ça me met : "attendu : expression" (en surlignant %nom$%%prenom$%)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avec ou sans, c'est le même resultat, j'avais commencé sans et, puisque ma variable semblait s'appeler nom$... mais je ne peux pas la renommer sinon ça risque de faire planter ce qui existe déjà... Bref, ça ne fonctionne pas :'(
Si je suis sûre de travailler sous DOS? Je pense, mais je ne peux pas être sûre non, c'est ce qu'on m'a dit... Comme je l'ai dit avant, je n'y connais rien...
L'extension de mon fichier est *.bas et le manuel d'utilisation que l'on m'a fourni pour faire le programme s'appelle "MS-DOS" mais le logiciel que l'on m'a prêté pour travailler dessus s'appelle QuickBasic, donc, en effet, ce pourrait être du basic... mais si je m'amuse à programmer en visual basic (langage que je connais) ça ne risque pas de marcher... (Désolée d'être si prise de tête, je n'y connais vraiment rien, et je ne sais pas ce qui pourrait vous aider à comprendre ce qui ne va pas :\)
L'extension de mon fichier est *.bas et le manuel d'utilisation que l'on m'a fourni pour faire le programme s'appelle "MS-DOS" mais le logiciel que l'on m'a prêté pour travailler dessus s'appelle QuickBasic, donc, en effet, ce pourrait être du basic... mais si je m'amuse à programmer en visual basic (langage que je connais) ça ne risque pas de marcher... (Désolée d'être si prise de tête, je n'y connais vraiment rien, et je ne sais pas ce qui pourrait vous aider à comprendre ce qui ne va pas :\)
Bon c'est bien du Basic :)
Alors là c'est sans garantie, mes souvenirs remontent à ma petite enfance dans ce domaine :-D
Bon le + entre tes variables ne marchent pas?
Par contre pour chercher dans un fichier texte, là non ça sera sans moi...trop trop loin...
Alors là c'est sans garantie, mes souvenirs remontent à ma petite enfance dans ce domaine :-D
Bon le + entre tes variables ne marchent pas?
Par contre pour chercher dans un fichier texte, là non ça sera sans moi...trop trop loin...
Salut à tous et à toutes...
c'est aussi du vieux souvenir pour moi...
Pour lire une ligne dans un fichier :
OPEN "nomdefichier" FOR INPUT AS #1
LINE INPUT #1, A$
PRINT A$
CLOSE #1
Plus d'infos ici :
http://www.cybwarrior.com/articles/?id=6
Pour la recherche dans une chaine, il faut s'écrire une fonction, car je n'ai pas souvenir d'une fonction de "scan" de chaine...
Faudra faire de la boucle avec mid...
Bon courage...
c'est aussi du vieux souvenir pour moi...
Pour lire une ligne dans un fichier :
OPEN "nomdefichier" FOR INPUT AS #1
LINE INPUT #1, A$
PRINT A$
CLOSE #1
Plus d'infos ici :
http://www.cybwarrior.com/articles/?id=6
Pour la recherche dans une chaine, il faut s'écrire une fonction, car je n'ai pas souvenir d'une fonction de "scan" de chaine...
Faudra faire de la boucle avec mid...
Bon courage...
http://fr.wikipedia.org/wiki/Algorithme_de_recherche_de_sous-cha%C3%AEne
Mais bon, c'est de la théorie...
Mais bon, c'est de la théorie...
Bon, pour la concaténation !!! ça marche !!!
C'était donc :
INPUT "Votre nom ?"; nom$
INPUT "Votre prenom ?"; prenom$
cle$ = nom$ + prenom$
Pour ce qui est de la recherche, il y a toujours un problème... Soit ça écrase ce qu'il y a dans ma clé, soit ça plante le programme...
Je cherche, si je trouve une solution, je vous en fais par... Merci de votre aide !!! Merci beaucoup beaucoup !
C'était donc :
INPUT "Votre nom ?"; nom$
INPUT "Votre prenom ?"; prenom$
cle$ = nom$ + prenom$
Pour ce qui est de la recherche, il y a toujours un problème... Soit ça écrase ce qu'il y a dans ma clé, soit ça plante le programme...
Je cherche, si je trouve une solution, je vous en fais par... Merci de votre aide !!! Merci beaucoup beaucoup !