AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Separer du texte

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Kabcorp
Utilisateur confirmé: Rang **
avatar

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

MessageSujet: Separer du texte   Jeu 29 Jan 2015 - 0: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*
avatar

Messages : 3325
Localisation : Dans une canonnière wookie.
Projet Actuel :
Things


MessageSujet: Re: Separer du texte   Jeu 29 Jan 2015 - 8: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 **
avatar

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

MessageSujet: Re: Separer du texte   Jeu 29 Jan 2015 - 13: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*
avatar

Messages : 3325
Localisation : Dans une canonnière wookie.
Projet Actuel :
Things


MessageSujet: Re: Separer du texte   Jeu 29 Jan 2015 - 19: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
avatar

Messages : 7377
Localisation : Essonne

MessageSujet: Re: Separer du texte   Ven 30 Jan 2015 - 23: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 ^^
l'antique http://www.membres.lycos.fr/thedarkminousite/
Bienvenue au 2521eme utilisateur : Jeijmeh_ !
Revenir en haut Aller en bas
http://www.membres.lycos.fr/thedarkminousite/
Kabcorp
Utilisateur confirmé: Rang **
avatar

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

MessageSujet: Re: Separer du texte   Sam 31 Jan 2015 - 12: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é




MessageSujet: Re: Separer du texte   

Revenir en haut Aller en bas
 
Separer du texte
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» script défilement texte ou image
» Joli texte : "Aimer la main ouverte"
» Texte trop petit dans les arbres
» Comment copier un texte sous Word dans le forum ?
» petit texte pour les finissants

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: