[Basic] Concaténation et recherche d'une clé

Fermé
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006 - 22 févr. 2006 à 12:17
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006 - 24 févr. 2006 à 11:46
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 !!!
A voir également:

11 réponses

teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
22 févr. 2006 à 13:16
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.
0
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006
23 févr. 2006 à 11:35
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 !!!
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
23 févr. 2006 à 12:10
Bon, quitte à paraitre complètement idiote

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...)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
23 févr. 2006 à 12:18
Salut,

set NOM=TOTO
set PRENOM=titi
set NOMCOMPLET=%NOM%%PRENOM%

echo %NOM%
echo %PRENOM%
echo
echo %NOMCOMPLET%
pause
Pour "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...

;-))
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
23 févr. 2006 à 12:21
Tu connais un bon grep sous windows?
Je suis interessé :)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896 > teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011
23 févr. 2006 à 13:13
Non, j'en connais pas :-(

Par contre mes plus plates excuses parce que tout compte fait avec "sed"(et "sed15" aussi), ça marche très bien la recherche...
sed15 -n /%variable%/p  le_fichier.txt
;-))
0
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006
23 févr. 2006 à 12:50
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$%)
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793 > Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006
23 févr. 2006 à 15:04
'INPUT' is not recognized as an internal or external command,
operable program or batch file.


Tu es sûre que tu bosses sous DOS? Ca ne serait pas plutôt une forme de basic? Un .vbs ou un .bat?

Tu es bien sous Windows? Si oui lequel? XP? 2000? 98? 95? 3.11?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
23 févr. 2006 à 13:08
On a pas mis de $ nous :)
set NOMCOMPLET=%NOM%%PRENOM%
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
23 févr. 2006 à 13:25
Bon, pour ta recherche tu peux aussi utiliser cette syntaxe :
findstr  %variable%  fichier.txt
;-))
0
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006
23 févr. 2006 à 14:59
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 :'(
0
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006
23 févr. 2006 à 15:38
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 :\)
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
23 févr. 2006 à 16:07
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...
0
blux Messages postés 26537 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317
24 févr. 2006 à 09:45
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...
0
blux Messages postés 26537 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 317
24 févr. 2006 à 10:35
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
23 févr. 2006 à 16:11
Tu peux aller faire un tour là ça a l'air pas mal...

http://www.qbasic.com/mirror/frames.html
0
Septenia Messages postés 6 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 24 février 2006
24 févr. 2006 à 11:46
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 !
0