Aller au contenu


[résolu] :  Ordonner numériquement une liste de "String"


  • Vous ne pouvez pas répondre à ce sujet
9 réponses à ce sujet

#1 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 07 août 2011 - 05:18

Bonjour à tous,

Petite intro sans rapport au post:

Mon passage de Director 8.5 à 11.5 est maintenant terminé.
La conversion de mes animations a été relativement longue
dans la mesure que la plupart de celles-ci sont basées sur des MIAWs.
Pour le reste, ça n'a pas été "douloureux" malgré que le
copier/coller dans l'éditeur de script est périlleux : (méfiez-vous des parenthèses et crochets)
Mais bon, j'aime l'interface et je supporte l'Unicode... Bravo!

OK,

On a une liste générée par BuddyApi Xtra (baFileList):

put l

--["10test.jpg", "11test.jpg", "12test.jpg", "1test.jpg", "2test.jpg", "3test.jpg", "4test.jpg", "5test.jpg", "6test.jpg", "7test.jpg", "8test.jpg", "9test.jpg"]

L'objectif est que la liste soit ordonnée de la même manière que Windows Explorer affiche les noms de fichiers, soit:

["1test.jpg","2test.jpg","3test.jpg","4test.jpg","5test.jpg","6test.jpg","7test.jpg","8test.jpg","9test.jpg","10test.jpg","11test.jpg","12test.jpg"]

Après quelques recherches sur le Net, j'en arrive à la conclusion que, bien que ça peu sembler un petit problème au premier abord,
c'est plutôt une petite "bête noire " et ce, quelque soit le langage de programmation...

Qui prend le défi...

Merci!

#2 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 07 août 2011 - 05:26

Bonjour !
Comme ça, sans trop réfléchir, une première liste à partir des valeurs qui ont 1 seul chiffre en début de nom, puis les autres ?
1) j'extrais de la liste les valeurs qui ont x caractères, j'en fais une liste, j'ordonne, je mets dans une liste, puis j'extrais de la liste les valeurs qui ont x caractères + 1, j'en fais une liste, j'ordonne, je rajoute (add) à la fin de ma liste, et etc.?

amitiés directoresques

#3 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 07 août 2011 - 06:06

Merci gegedade pour ta réponce rapide,

Wow!

C'est peut-être une solution à investiguer...en dernier recours...
Pour être franc, j'espérait une solution plus simple et surtout...comfirmer...

Un Xtra par exemple.

Dans la mesure que que l'on à pas le contrôle sur les "String" qui va avoir
dans la liste de départ et que Windows encode en unicode 16 bits.
Je genre de script prendrait énormément de temps à vérifier dans différents cas de figures.
Sans compter le nombre important de repeat loop nécessaires....

Merci tout de même pour cete réponse de style "Brainstorm"

PS: Première règle du "Brainstorm":
Ne jamais critiquer les dix première minutes...

#4 Leedoriden

  • Moderateur
  • 4 345 messages

Posté 07 août 2011 - 08:41

Hello

depuis 2009 je n'ai pas ouvert Director mais
i.sort(); devrait faire l'affaire

sachant que i est une liste

#5 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 07 août 2011 - 09:06

Merci Leedoriden,

Soit assurré que si

l.sort()

aurais fonctionner,

ce post n'aurait jamais existé.

C'est beaucoup plus complexe que ça en è l'air...

http://www.director-....php?title=Sort

Merci de la bonne intention

#6 Leedoriden

  • Moderateur
  • 4 345 messages

Posté 07 août 2011 - 09:25

as-tu déjà lu ce topic Tri Alphabétique de Seb ?

il utilise flash, source dispo

#7 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 07 août 2011 - 09:47

Merci Leedoriden,

Ça semble très intéressant.

J'ai besoin d'un peu de temps pour analyser le tout.
Je te revient avec une opignon éclairée la-dessus.

Je doit avouer que je voulais éviter de me mettre les main dans le cambouis à ce point.
La créativité n'est pas vraiment là.

Un Xtra pour trier les listes à notre convenance serait pleinement justifier...
et je serais le premier acheteur...

Merci, c'est pertinent...

#8 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 07 août 2011 - 10:18

Ok Leedoriden,

j'ai inspecté les fichiers, je doit avouer que n'ai pas envie d'aller plus loin dans cette direction.

Je n'aime pas mélanger ActionScript(Flash) et Lingo.

Pas que je n'aime pas AS3, je fais tout mon site web dans ce langage.

Mais ca m'oblige à ajouter des Xtras qui gonfle le poid final des mes animations...
et surtout on peut faire sans...

Merci

#9 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 07 août 2011 - 11:26

Leedoriden,

tu a réussis à piqué ma curiosité....

j'ai approfondis les possibiltés d'ActionScript dans ce dommaine.
(C'est une simple liste linéaire...on peut foncer...)

j'ai commencer par trouver ceci:

http://www.flashacti...ctie=Array.sort

j'ai télécharger les fichiers, que j'ai modifiés légèrement.

j'en arrive à la conclusion, qu'a première vu, ActionScript frappe un mur également

à Suivre...

#10 LingoSag

    Ceinture Bleue

  • Members
  • 76 messages

Posté 08 août 2011 - 02:32

Ok, je crois avoir trouver la solution.

Son nom est PRegEx Xtra

La version 2.0 est compatible Director 11.x et supporte l'Unicode.
(Grand Bravos au concepteur(s) qui ne ce sont pas dégonfler comme bien d'autres...)

C'est un Xtra dont le fonctionnement est basé sur les Expressions Régulières

Vous trouverez le script que j'ai tester et écrit par Sean Wilson à:

http://director-onli...ead.php?2,42156

Ça fonctionne bien et d'une rapididité étonnante.

Malheureusement,

C'est ok pour les strings commeçant par des nombres,
mais ce n'est pas encore identique à l'ordre de Windows Explorer.

PRegEx: Les Strings commeçant par des nombre sont avant les autres.
Windows Explorer: contraire...

Par manque de temps et avec regret je n'ai pas encore creuser le principle des Expressions Régulières.
C'est dans ma list "ToDo"

Y'a t'il un grand manitoo des Expressions Régulières dans la salle ?

L'objectif ultime est que l'utilisateur de l'animation retrouve dans celle-ci exactement la même liste de fichiers
que dans Windows Explorer. C'est le genre de détails que je trouve important lorsque je conçoit...

Merci !

Modifié par LingoSag, 08 août 2011 - 02:36 .






1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS - Tel. 0826 466 613 - Fax. 01 72 70 31 38

FFP