IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004] Convertir chaine en date


Sujet :

Flash

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 66
    Points
    66
    Par défaut [FLASH MX2004] Convertir chaine en date
    salut,

    Je dois récupérer une variable d'un fichier texte dans un tableau, en scindant la chaine pour y inclure des sous tableaux de longueur 4
    Jusque là pas de problèmes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    variables.onLoad = function(success) {
    	_global.nouveau = new Array();
    	if (variables.nouveau != "") {
    		var nouveauTemporaire:Array = variables.nouveau.split(",");
    		var i:Number = 0;
    		while (i<nouveauTemporaire.length) {
    			nouveau.push(nouveauTemporaire.slice(i, (i+4)));
    			i+=4;
    		}
    	}
    };
    variables.load("stock.txt");
    Mon problème se précise car les index 1 et 2 de chaque sous tableau sont des dates et que pour l'instant se sont des chaines.

    Existe t-il comme en VB une fonction du style Cdate(expression) ?
    ou comment je pourrais faire un typage de ces index en date...

    Merci

  2. #2
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    salut

    Existe t-il comme en VB une fonction du style Cdate(expression) ?
    ou comment je pourrais faire un typage de ces index en date...
    si je veux etre sur mais tu veux convertir un chaine de caractère en un objet date ?

    a+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 66
    Points
    66
    Par défaut
    oui c'est ça, mais sachant qu'à la base s'était un objet date donc le format est bon

    si t'as au moins une piste, sachant que je pourrais extraire l'index dans une variable et la typer Date, puis replacer dans le tableau, mais là ça va faire usine à gaz

    merci

  4. #4
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    il faut que tu te fasse une fonction de conversion du genre.
    Par ex pour le format JJ/MM/AAAA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function stringToDate(sDate:String):Date {
       var tabDate:Array = sDate.split("/");
       return new Date(Number(tabDate[2]), Number(tabDate[1]), Number(tabDate[0]));
    }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 66
    Points
    66
    Par défaut
    C'est pas tout à fait mon but mais tu me donnes une idée.

    Je bosse dessus et je publierais la réponse.

    a++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 66
    Points
    66
    Par défaut
    Bon s'est un peu usine mais j'ai trouvé et si ça peut intéresser...

    Le problème était que ma chaine initiale avait été générée par new Date()
    et sauvegardée comme telle dans le txt (cf. mdm ZINC V2).
    du style : Wed Jan 19 17:28:57 GMT+0100 2005
    J'ai 2 dates par sous tableau et doivent être absolument compatibles pour être soustraites ( en autre..)

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    variables.onLoad = function(success) {
    	_global.nouveau = new Array();
    	if (variables.nouveau != "") {
    		var nouveauTemporaire:Array = variables.nouveau.split(",");
    		var i:Number = 0;
    		var j:Number = 0;
    		while (i<nouveauTemporaire.length) {
    			nouveau.push(nouveauTemporaire.slice(i, (i+4))); // j'ai la chaine en index [j][1] et [j][2]
    			chainedate(j); // La longueur du tableau "nouveau" est variable.
    			++j;
    			i += 4;
    		}
    	}
    };
    variables.load("stock.txt");
    function chainedate(index) {
    	var manip1:Array = nouveau[index][1].split(" "); //j'isole les éléments
    	var manip2:Array = nouveau[index][2].split(" ");
    	var detailManip1:Array = manip1[3].split(":"); // j'isole l'heure....
    	manip1.splice(3, 1, detailManip1[0], detailManip1[1], detailManip1[2]); // je recréé directement le tableau
    	var detailManip2:Array = manip2[3].split(":");
    	manip2.splice(3, 1, detailManip2[0], detailManip2[1], detailManip2[2]);
    	var transforMois:Array = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    	for (i=0; i<12; i++) {
    		if (manip1[1] == transforMois[i]) {
    			manip1[1] = i; // je récupère le numéro du mois
    		}
    		if (manip2[1] == transforMois[i]) {
    			manip2[1] = i;
    		}
    	}
    	var nouvelleDate1:Date = new Date(manip1[8], manip1[1], manip1[2], manip1[3], manip1[4], manip1[5]); // je recréé la date
    	nouveau[index][1] = nouvelleDate1; // et la réinsère dans le tableau
    	var nouvelleDate2:Date = new Date(manip2[8], manip2[1], manip2[2], manip2[3], manip2[4], manip2[5]);
    	nouveau[index][2] = nouvelleDate2;
    }
    Et hop, mais si quelqu'un a plus simple, je suis preneur.
    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir chaine en date
    Par Pingva dans le forum SQL
    Réponses: 7
    Dernier message: 17/09/2013, 16h25
  2. convertir chaine en date
    Par ayarikhaoulakoukou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/08/2011, 15h57
  3. [VB.net 2005] convertir chaine de caractère en type 'date'
    Par kinganasius dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/07/2006, 23h14
  4. Réponses: 2
    Dernier message: 17/05/2006, 10h38
  5. Réponses: 2
    Dernier message: 06/12/2004, 21h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo