SVP !!! j'ai un pbleme !!

LeKamé - 6 août 2001 à 17:10
khalidlyon Messages postés 28 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 14 août 2007 - 4 juil. 2003 à 16:07
salut !!
j'ai un big mega probleme !!

le voici :

je suis en train de créer un jeu, et je suis bloqué à un truc:
Nn fichier texte (.txt), nommé, "config.txt".
Voici exactement ce que contient le fichier texte:

theme="foret"
#
Vous devez retrouver les potions magique:
-dans un arbre
#
vous devez battre le boss
-dans la clairiere
#
Vous devez vendre vos potion magiques
-aux nains
#

SVP !!! dites moi comment faire pour que ca affiche au hasard dans un textBox, le texte qui se trouve entre deux caracteres comme celui ci: #
Je sais que pour le hasard ca sera la fonction Randomize. Ca c'est clair !!
Mais je ne sais pas comment faire pour que ca sélectionne le texte qui se trouve entre deux #
SVP !! aidez moi !!!!!!!!!
je vous en pris !!!!!!
Ne me demandez pas pourquoi je veux faire cela !! ca serais trop long a expliquer !!!
Mais j'aimerais savoir comment faire cette manip !!
Si vous savez faire dites le moi !!
je suis désespéré !!

Merci de bien vouloir répondre !!!!

10 réponses

Utilise la fonction InStr

ex (en admettant que tu mettes ton texte dans un Text1):
'Voilà la position du premier caractère "#" dans ta chaîne
Dim Found As Variant
Found = InStr(Text1.Text, "#")
If Found <> 0 Then
'Si le caractère a été trouvé dans Text1.Text...
...
End If

'Ca, c'est pour découper ta chaîne
'Tu la prends de la position du "#"+1, ensuite c'est la
'longueur de ce que tu veux récupérer, le fait de mettre
'len(Text1.Text) t'assure d'avoir le reste de ta chaîne.
Mid(Text1.Text, Found + 1, len(Text1.Text))
'Tu pourras ainsi tester le reste de ta chaîne.

Bonne chance et bonne prog !
:-)
0
Au fait, certains peuvent trouver ça un peu barbare comme programmation mais ça marche ( c déjà ça ), enfin, faut voir comment réagit la fonction quand elle rencontre les retours à la ligne mais je ne pense pas que ça gène.
Voilà !
0
a ben merci !!! Sirotilc tu m'a aidé !!!!j'espere que je pourrais t'aider un de ces jour !!!
vraiment merci !!!
0
Je te mail un zip
j'espère que cela règlera ton problème

Natas
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juil. 2003 à 10:34
if((((DWORD*) ligne) & 0xFFFFFF) == 0x6D6964)
et encore mieux ton strcmp sur 3 octets.
BruNews, ciao...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
4 juil. 2003 à 12:59
Cela merite quelque explication non ?
Quel est ce nombre magique 0x6D6964 ?
64 : 'd'
69 : 'i'
6D : 'm'

je crois ? (enfin ca correspond au niveau des offset !)

mais il n'y a pas de probleme si je fais "dimHIHI"
ne va-t-il pas dire que oui cette chaine est bien "dim" ?
car dans le fichier, il y a une \n a la fin !

je sais pas moi, c'est juste une question !

moi je propose une chose plus lisible :
(('d') | ('i' << 8) | ('m' << 16))
comme ca (personnellement) c'est plus lisible,
question rapidite, le compilateur peut optimiser
tout cela car iln'y a que des contantes en 0x6D6964.

Amicalement JCDjcd
:-p :sleepy) :shy) :sleepy) :-p
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juil. 2003 à 13:07
non aucun risque d'erreur car la comparaison est de 4 octets en remplacement de strcmp:
((DWORD*) ligne) == donc 0 final est bien teste a la suite de 'dim'.
BruNews, ciao...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
4 juil. 2003 à 13:25
C'est vrai ! puisque tu fais & 0x00FFFFFF
\0 m i d

la fonction de lecture du fichier remplace un \0 a la place du n ? est-ce toujours le cas pour n'importe quelle fonction de lecture ?

:-p :sleepy) :shy) :sleepy) :-p
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juil. 2003 à 13:34
je n'en connais aucune qui le fait, pour cela le & 0xFFFFFF.
Moi j'avais isole sur un exemple a part, si ce sont des lignes ira encore + vite:
if(((DWORD*) ligne) == 0xD6D6964) est bien "dim\n".
BruNews, ciao...
0
khalidlyon Messages postés 28 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 14 août 2007
4 juil. 2003 à 16:07
ensemble pour la scienceEnsemble pour la science

Re bonjour, Alors dites moi SVP ce que je dois mettre de plus a ce code, pour que je commence a lire apres "dim", car j'ai pas bien compris votre réponse:

float number[130];
int i = 0;

pf = fopen("test.dat","r");
i = 0;
while(!feof(pf))
{
fscanf(pf,"%f",&number[i]);
i++;
}
fclose(pf);

Merci infiniment.
0
Rejoignez-nous