AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-29%
Le deal à ne pas rater :
PC portable Gamer ERAZER DEPUTY P60 – 15,6” FHD 144Hz – i7-12è ...
999.99 € 1399.99 €
Voir le deal

 

 Separer du texte

Aller en bas 
3 participants
AuteurMessage
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Separer du texte Empty
MessageSujet: Separer du texte   Separer du texte EmptyJeu 29 Jan 2015 - 1:49

Hello! gnii

Je récupère des données d'un fichier text ou y sont listés des coordonées X Y Z.

Exemple (A):
Code:
128 64 0
128 96 0
160 96 32
etc..

Le truc, c'est qu'en manipulation de chaines de caracteres, j'ai des lacunes.

Donc, pour les utiliser je transforme le TXT en supprimant tout les espaces
et je lis les valeurs ligne par ligne

Exemple (B),
Code:
128
64
0
128
96
0
160
96
32
etc..

De cette façon dans une boucle:
Code:
POSX=file_text_read_real(TXT);              //Lecture de la ligne
file_text_readln(TXT);                                    //Ligne suivante
POSY=file_text_read_real(TXT);                       //Lecture de la ligne
file_text_readln(TXT);                                    //Ligne suivante
POSZ=file_text_read_real(TXT);                       //Lecture de la ligne
file_text_readln(TXT);                                    //Ligne suivante

Comment puis-je faire pour utiliser l'exemple (A)?

Exemple: (Z)
Code:
POSX=file_text_read_real(TXT);--check si il y a un espace--POSY=file_text_read_real(TXT);--check si il y a un espace--POSZ=file_text_read_real(TXT);--check si il y a un espace--
file_text_readln(TXT);                                    //Ligne suivante

Dites moi si vous n'avez pas tout compris Wink
Merci a vous bneige

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Separer du texte Empty
MessageSujet: Re: Separer du texte   Separer du texte EmptyJeu 29 Jan 2015 - 9:25

unpack (chaine, position, séparateur);
Code:
chaine = "mot1 mot2 mot3";
result = unpack(chaine, 0, " ");
result = mot1

Code:
argument0 = string(argument0)+string(argument2);
for(i=0; i < string_count(argument2, argument0); i+=1)
{
pos = string_pos(argument2,argument0)
choix[i] = string_copy(argument0,0,pos-1)
argument0 = string_delete(argument0,1,pos)
}
return choix[argument1]
Basé sur un script de adamo Wink et le premier élément est le 0, le deuxième le 1, ainsi de suite.

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Separer du texte Empty
MessageSujet: Re: Separer du texte   Separer du texte EmptyJeu 29 Jan 2015 - 14:30

Merci!

Mais... Ne marche pas quand je veut retourner le 3eme string:

Code:
EXECUTION ERROR in creation code of room rm_init
In script unpack:
Error in code at line 8:
   return choix[argument1]
          ^
at position 9: Unknown variable choix or array index out of bounds

Avec ceci

Code:
chaine = "mot1 mot2 mot3";
result = unpack(chaine, 2, " ");

(Les retours 0 et 1 marchent très bien mais pas le 2) triste

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Separer du texte Empty
MessageSujet: Re: Separer du texte   Separer du texte EmptyJeu 29 Jan 2015 - 20:45

Essaie ça alors :
Code:
argument0 = string(argument0)+string(argument2);
for(i=0; i <= string_count(argument2, argument0); i+=1)
{
pos = string_pos(argument2,argument0)
choix[i] = string_copy(argument0,0,pos-1)
argument0 = string_delete(argument0,1,pos)
}
return choix[argument1]

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Separer du texte Empty
MessageSujet: Re: Separer du texte   Separer du texte EmptySam 31 Jan 2015 - 0:31

Si tu à un code qui marche (le mien envoyé par mail ou un de ceux de Mass, ou un des tiens), n'hésite pas à le poster ici pour passer le sujet en [Résolu] Wink

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Separer du texte U3dfr2 l'antique http://www.membres.lycos.fr/thedarkminousite/Separer du texte Sign
Bienvenue au 2628eme utilisateur : *Yashiro89 !
Revenir en haut Aller en bas
http://www.tdms.fr
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

Separer du texte Empty
MessageSujet: Re: Separer du texte   Separer du texte EmptySam 31 Jan 2015 - 13:12

Pour le script:
Code:
argument0 = string(argument0)+string(argument2);
for(i=0; i < 3; i+=1)
{
pos = string_pos(argument2,argument0)
choix[i] = string_copy(argument0,0,pos-1)
argument0 = string_delete(argument0,1,pos)
}
return choix[argument1]

Je ne comprend toujours pas pourquoi ça marche...

for(i=0; i < 3; i+=1) OK
for(i=0; i < string_count(argument2, argument0); i+=1) NE MARCHE PAS, alors que string_count(argument2, argument0) est egal a 3 -_-

Ducoup j'utillise ceci:
Code:
STR=string(POS)+" ";
for(i=0;i<3;i+=1)
{
    Position=string_pos(" ",STR);
    VALUE[i]=string_copy(STR,0,Position-1);
    STR=string_delete(STR,1,Position);
    if i=0{POSX=real(VALUE[0]);}
    if i=1{POSY=real(VALUE[1]);}
    if i=2{POSZ=real(VALUE[2]);}
}

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Revenir en haut Aller en bas
http://kabcorp.fr
Contenu sponsorisé





Separer du texte Empty
MessageSujet: Re: Separer du texte   Separer du texte Empty

Revenir en haut Aller en bas
 
Separer du texte
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: