Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

re : Lire un txt et extraire une partie

Envoyé: 15 juin 2006, 10h18 par Oznog


Salut,

Il doit y avoir quelqu'un qui fait de la désinformation quelque part ;-) Vaut mieux ne jamais charger un texte directement, ajoutez au moins une assignation :

monTexte=Le Texte ICI...

C'est la façon de faire, c'est la façon dont fonctionne les en-têtes http et c'est la seule façon de distinguer et de récupérer plusieurs valeurs.

À ce stade il y a des dizaines de méthodes, selon tes besoins. EN ne les connaissant pas, je dois deviner.

Le plus simple est de prévoire une variable par valeur (mais sache que tu peux utiliser des déloimitateurs comme tu propose, notamment si tu ne connait pas la quantité de données) :

// FICHIER 1 : textfile.txt
hPersonne1=pierre martin&hMot1=bonjour&hPersonne2=jacques henri&hMot2=salut

Nous alons transposer le tout dans un tableau (array). Et ainsi les rendre disponibles individuellement. :

Pour simplifier l'accès, je vais créer une classe personne avec un nom et un mot.

// Sauver dans le même dossier
// FICHIER 2 : twClassePersonne.as
class twClassePersonne {
public var nom: String;
public var mot: String;
}

Et dans ton Flash, tu inclu la classe comme ceci :

// FICHIER .fla
// Première image-clé du premier calque.
import twClassePersonne;

// On déclare ensuite le tableau
var aPersonnes:Array = new Array();
// Et ton fichier bien sûr
_root.file = "textfile.txt";


Note que j'utilise « onLoad » au lieu de « onData »

var lv = new LoadVars();
lv.onLoad = function (success) {
if (success) {
// Création d'un objet Personne
var oPersonne:twClassePersonne = new twClassePersonne();
// Assignation des deux valeurs récupérées
oPersonne.nom = this.hPersonne1;
oPersonne.mot = this.hMot1;
// Et on pousse le tout à la fin du tableau
_root.aPersonnes.push(oPersonne);

// Même chose pour le deuxième nom
var oPersonne:twClassePersonne = new twClassePersonne();
oPersonne.nom = this.hPersonne2;
oPersonne.mot = this.hMot2;
_root.aPersonnes.push(oPersonne);

// L'idée est d'avoir accès partout
// exemple au nom du premier
trace(_root.aPersonnes[0].nom);
// Ou au mot du deuxième
_root.dspText.text = _root.aPersonnes[1].mot;
}
}

// Chargement du fichier
lv.load(_root.file);

Tout ce script pour être refait dans une boucle, si le nombre de personnes est illimité. Mais dans tout les cas, tu te retrouve avec les valeurs disponibles individuellement. Bien que le test ne soit plus n'écessaire (puisque tu connait le mot de chaque nom selon l'index!), tu pourrais faire ce que tu demande, à savoir :

if (_root.aPersonnes[0].nom) = "pierre martin") {
trace("égal");
} else {
trace("pas égal");
};

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

X

Trucsweb.com Mot de passe perdu

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte