[HTA] Classement alphabétique des éléments d'un tableau (vbs)
7 réponses
sympatix
Bonjour !
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est
remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut
varier (entre 1 et 1500 environ).
Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères
environ, espaces compris)
Mon but est de "ranger" dans une variable normale (scalaire) le contenu des
éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Faut-il jongler avec la manipulation des strings (avec les différentes
fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il
une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un
tableau ? Ou faut-il que je me mette aux expressions régulières ?
Je met ci-dessous un extrait (non fonctionnel) du script, qui pour l'instant
se contente
d'afficher dans la page, le contenu du tableau, mais dans le même ordre que
la lecture du fichier texte, donc, non classé alphabétiquement.
-------Extrait -------------------------
Dim Lit ()
Do
Redim Preserve Lit (n)
Lit (n) = Texte.ReadLine
n = n+1
Loop Until Texte.AtEndOfStream
For each M in Lit
R = R & VbCrlf & M
Affiche.innertext = R
Next
------------Extrait Fin -----------------
D'avance, merci pour vos réponses :-)
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred
Dans son message % sympatix nous dit :
Bonjour !
Bonjour,
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut varier (entre 1 et 1500 environ). Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères environ, espaces compris) Mon but est de "ranger" dans une variable normale (scalaire) le contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort par exemple. Tu peux aussi profiter des commandes existantes TYPE fichier | SORT > fichierTrié par exemple. C'est un peu moins "propre" mais cela fonctionne.
Faut-il jongler avec la manipulation des strings (avec les différentes fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un tableau ?
Je ne crois pas hélas,
Ou faut-il que je me mette aux expressions régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-) C'est, par ailleurs, très intéressant
[...]
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans son message %23JCDZoIiFHA.2444@tk2msftngp13.phx.gbl
sympatix nous dit :
Bonjour !
Bonjour,
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui
est remplit par la lecture d'un fichier texte, et dont le nombre
d'éléments peut varier (entre 1 et 1500 environ).
Ces éléments contiennent chacun une chaine (string), de 80 à 300
caractères environ, espaces compris)
Mon but est de "ranger" dans une variable normale (scalaire) le
contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Programmer un algorithme de tri ! Fais une recherche Google avec
QuickSort par exemple.
Tu peux aussi profiter des commandes existantes TYPE fichier | SORT >
fichierTrié par exemple.
C'est un peu moins "propre" mais cela fonctionne.
Faut-il jongler avec la manipulation des strings (avec les différentes
fonctions comment Instr, Mid, Left, ...et leurs cousines), ou
existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les
éléments d'un tableau ?
Je ne crois pas hélas,
Ou faut-il que je me mette aux expressions
régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-)
C'est, par ailleurs, très intéressant
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut varier (entre 1 et 1500 environ). Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères environ, espaces compris) Mon but est de "ranger" dans une variable normale (scalaire) le contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort par exemple. Tu peux aussi profiter des commandes existantes TYPE fichier | SORT > fichierTrié par exemple. C'est un peu moins "propre" mais cela fonctionne.
Faut-il jongler avec la manipulation des strings (avec les différentes fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un tableau ?
Je ne crois pas hélas,
Ou faut-il que je me mette aux expressions régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-) C'est, par ailleurs, très intéressant
[...]
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
sympatix
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort par exemple.
j'ai vu...donc, en gros, le principe, c'est de choisir arbitrairement un élément, et de placer ensuite à gauche ou à droite tout le reste en le triant ! :-)))
Tu peux aussi profiter des commandes existantes TYPE fichier | SORT > fichierTrié par exemple. C'est un peu moins "propre" mais cela fonctionne. En fouillant dans la doc (script56.chm), j'ai vu des infos (c'est en
jscript, mais ça m'a l'air déjà plus accessible)
Ou faut-il que je me mette aux expressions régulières ? Si tu veux mais je ne pense pas que cela puisse t'aider ici :-)
C'est, par ailleurs, très intéressant Je n'en doute pas ...le plus dur c'est de s'y mettre (mais bon, si ça ne
sert à rien ici, j'attendrai une autre occasion pour m'y plonger !)
Merci :-)
-- Cordialement Sympatix (Antispam: Ôter les "toto" dans l'adresse, pour me répondre) "Fred" a écrit dans le message de news: %
Dans son message % sympatix nous dit :
Bonjour !
Bonjour,
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut varier (entre 1 et 1500 environ). Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères environ, espaces compris) Mon but est de "ranger" dans une variable normale (scalaire) le contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort par exemple. Tu peux aussi profiter des commandes existantes TYPE fichier | SORT > fichierTrié par exemple. C'est un peu moins "propre" mais cela fonctionne.
Faut-il jongler avec la manipulation des strings (avec les différentes fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un tableau ?
Je ne crois pas hélas,
Ou faut-il que je me mette aux expressions régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-) C'est, par ailleurs, très intéressant
[...]
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort
par exemple.
j'ai vu...donc, en gros, le principe, c'est de choisir arbitrairement un
élément, et de placer ensuite à gauche ou à droite tout le reste en le
triant !
:-)))
Tu peux aussi profiter des commandes existantes TYPE fichier | SORT >
fichierTrié par exemple.
C'est un peu moins "propre" mais cela fonctionne.
En fouillant dans la doc (script56.chm), j'ai vu des infos (c'est en
jscript, mais ça m'a l'air déjà plus accessible)
Ou faut-il que je me mette aux expressions
régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-)
C'est, par ailleurs, très intéressant
Je n'en doute pas ...le plus dur c'est de s'y mettre (mais bon, si ça ne
sert à rien ici, j'attendrai une autre occasion pour m'y plonger !)
Merci :-)
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
"Fred" <foleide@libre.france> a écrit dans le message de news:
%23gWGHzIiFHA.2472@TK2MSFTNGP15.phx.gbl...
Dans son message %23JCDZoIiFHA.2444@tk2msftngp13.phx.gbl
sympatix nous dit :
Bonjour !
Bonjour,
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui
est remplit par la lecture d'un fichier texte, et dont le nombre
d'éléments peut varier (entre 1 et 1500 environ).
Ces éléments contiennent chacun une chaine (string), de 80 à 300
caractères environ, espaces compris)
Mon but est de "ranger" dans une variable normale (scalaire) le
contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort
par exemple.
Tu peux aussi profiter des commandes existantes TYPE fichier | SORT >
fichierTrié par exemple.
C'est un peu moins "propre" mais cela fonctionne.
Faut-il jongler avec la manipulation des strings (avec les différentes
fonctions comment Instr, Mid, Left, ...et leurs cousines), ou
existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les
éléments d'un tableau ?
Je ne crois pas hélas,
Ou faut-il que je me mette aux expressions
régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-)
C'est, par ailleurs, très intéressant
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort par exemple.
j'ai vu...donc, en gros, le principe, c'est de choisir arbitrairement un élément, et de placer ensuite à gauche ou à droite tout le reste en le triant ! :-)))
Tu peux aussi profiter des commandes existantes TYPE fichier | SORT > fichierTrié par exemple. C'est un peu moins "propre" mais cela fonctionne. En fouillant dans la doc (script56.chm), j'ai vu des infos (c'est en
jscript, mais ça m'a l'air déjà plus accessible)
Ou faut-il que je me mette aux expressions régulières ? Si tu veux mais je ne pense pas que cela puisse t'aider ici :-)
C'est, par ailleurs, très intéressant Je n'en doute pas ...le plus dur c'est de s'y mettre (mais bon, si ça ne
sert à rien ici, j'attendrai une autre occasion pour m'y plonger !)
Merci :-)
-- Cordialement Sympatix (Antispam: Ôter les "toto" dans l'adresse, pour me répondre) "Fred" a écrit dans le message de news: %
Dans son message % sympatix nous dit :
Bonjour !
Bonjour,
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut varier (entre 1 et 1500 environ). Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères environ, espaces compris) Mon but est de "ranger" dans une variable normale (scalaire) le contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Programmer un algorithme de tri ! Fais une recherche Google avec QuickSort par exemple. Tu peux aussi profiter des commandes existantes TYPE fichier | SORT > fichierTrié par exemple. C'est un peu moins "propre" mais cela fonctionne.
Faut-il jongler avec la manipulation des strings (avec les différentes fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un tableau ?
Je ne crois pas hélas,
Ou faut-il que je me mette aux expressions régulières ?
Si tu veux mais je ne pense pas que cela puisse t'aider ici :-) C'est, par ailleurs, très intéressant
[...]
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Do Re Mi chel La Si Do
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
@-salutations
Michel Claveau
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans
certains cas, sera très légèrement plus lent, mais, en contrepartie,
beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus
court).
Si les performances sont critiques, autant utiliser un tri par distribution.
Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle
méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en
centièmes de secondes.
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
@-salutations
Michel Claveau
sympatix
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
Merci pour ces infos complémentaires. Pour un non initié comme moi, la méthode du Quicksort me parait effectivement assez complexe, d'un premier abord. Je vais donc faire au plus simple avec les autres (bulles, distribution, Shell metzner).
merci:-) -- Cordialement Sympatix (Antispam: Ôter les "toto" dans l'adresse, pour me répondre) "Do Re Mi chel La Si Do" a écrit dans le message de news:
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
@-salutations
Michel Claveau
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui,
dans certains cas, sera très légèrement plus lent, mais, en contrepartie,
beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus
court).
Si les performances sont critiques, autant utiliser un tri par
distribution. Ceci dit, pour une taille aussi petite que 1500 lignes,
n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à
bulles se mesurera en centièmes de secondes.
Merci pour ces infos complémentaires. Pour un non initié comme moi, la
méthode du Quicksort me parait effectivement assez complexe, d'un premier
abord.
Je vais donc faire au plus simple avec les autres (bulles, distribution,
Shell metzner).
merci:-)
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
"Do Re Mi chel La Si Do" <enleverlesO.OmcO@OmclaveauO.com> a écrit dans le
message de news: O6bV2RkiFHA.3656@TK2MSFTNGP09.phx.gbl...
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui,
dans certains cas, sera très légèrement plus lent, mais, en contrepartie,
beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus
court).
Si les performances sont critiques, autant utiliser un tri par
distribution. Ceci dit, pour une taille aussi petite que 1500 lignes,
n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à
bulles se mesurera en centièmes de secondes.
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
Merci pour ces infos complémentaires. Pour un non initié comme moi, la méthode du Quicksort me parait effectivement assez complexe, d'un premier abord. Je vais donc faire au plus simple avec les autres (bulles, distribution, Shell metzner).
merci:-) -- Cordialement Sympatix (Antispam: Ôter les "toto" dans l'adresse, pour me répondre) "Do Re Mi chel La Si Do" a écrit dans le message de news:
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
@-salutations
Michel Claveau
Fred
Dans son message Do Re Mi chel La Si Do nous dit :
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
Shell-Metzner ? Si j'ai connu, je ne m'en souviens plus. Par contre, les bulles, j'aime bien. Et celui-là il est simple. En fait dans le cas du chargement d'un fichier, il n'a pas la contrainte de faire le tri "sur-place". Il doit être possible de faire un tri par insertion aussi rapide. Je me souviens aussi avoir fait un algo avec un arbre binaire, exactement dans cette configuration. L'amusant étant de le remettre à plat ensuite (sans fonction récursive bien sûr) :-) Je tape Shell-Metzner de ce pas sur Google avantde me coucher moins ignorant.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans son message O6bV2RkiFHA.3656@TK2MSFTNGP09.phx.gbl
Do Re Mi chel La Si Do nous dit :
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner,
qui, dans certains cas, sera très légèrement plus lent, mais, en
contrepartie, beaucoup plus facile à implémenter (le code doit être 4
ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par
distribution. Ceci dit, pour une taille aussi petite que 1500 lignes,
n'importe quelle méthode de tri sera suffisamment rapide. Même un tri
à bulles se mesurera en centièmes de secondes.
Shell-Metzner ? Si j'ai connu, je ne m'en souviens plus.
Par contre, les bulles, j'aime bien. Et celui-là il est simple.
En fait dans le cas du chargement d'un fichier, il n'a pas la contrainte
de faire le tri "sur-place".
Il doit être possible de faire un tri par insertion aussi rapide.
Je me souviens aussi avoir fait un algo avec un arbre binaire,
exactement dans cette configuration.
L'amusant étant de le remettre à plat ensuite (sans fonction récursive
bien sûr) :-)
Je tape Shell-Metzner de ce pas sur Google avantde me coucher moins
ignorant.
Dans son message Do Re Mi chel La Si Do nous dit :
Bonsoir !
Plutôt que du Quicksort, je conseille d'utiliser un Shell-Metzner, qui, dans certains cas, sera très légèrement plus lent, mais, en contrepartie, beaucoup plus facile à implémenter (le code doit être 4 ou 5 fois plus court).
Si les performances sont critiques, autant utiliser un tri par distribution. Ceci dit, pour une taille aussi petite que 1500 lignes, n'importe quelle méthode de tri sera suffisamment rapide. Même un tri à bulles se mesurera en centièmes de secondes.
Shell-Metzner ? Si j'ai connu, je ne m'en souviens plus. Par contre, les bulles, j'aime bien. Et celui-là il est simple. En fait dans le cas du chargement d'un fichier, il n'a pas la contrainte de faire le tri "sur-place". Il doit être possible de faire un tri par insertion aussi rapide. Je me souviens aussi avoir fait un algo avec un arbre binaire, exactement dans cette configuration. L'amusant étant de le remettre à plat ensuite (sans fonction récursive bien sûr) :-) Je tape Shell-Metzner de ce pas sur Google avantde me coucher moins ignorant.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
jbongran
sympatix wrote:
Bonjour !
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut varier (entre 1 et 1500 environ). Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères environ, espaces compris) Mon but est de "ranger" dans une variable normale (scalaire) le contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ? Faut-il jongler avec la manipulation des strings (avec les différentes fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un tableau ? Ou faut-il que je me mette aux expressions régulières ? Je met ci-dessous un extrait (non fonctionnel) du script, qui pour l'instant se contente d'afficher dans la page, le contenu du tableau, mais dans le même ordre que la lecture du fichier texte, donc, non classé alphabétiquement. -------Extrait ------------------------- Dim Lit () Do Redim Preserve Lit (n) Lit (n) = Texte.ReadLine n = n+1 Loop Until Texte.AtEndOfStream
For each M in Lit R = R & VbCrlf & M Affiche.innertext = R Next ------------Extrait Fin -----------------
D'avance, merci pour vos réponses :-)
En faisant appel à un recordset deconnecté (disconnected recordset) ? Const adVarChar = 200 Set RS = server.CreateObject("ADODB.Recordset") RS.fields.append "sLine", adVarChar, 500 RS.CursorLocation = adUseClient RS.CursorType = adOpenStatic RS.open Do Rs.addnew "sLine", Trim(Texte.ReadLine) Loop Until Texte.AtEndOfStream RS.Update ' RS.Resync <- ne sait plus si c'est utile RS.Sort = "sLine ASC" RS.MoveFirst While RS.EoF = False R = R & RS.Fields.Item("Sline").Value RS.MoveNext Wend RS.Close Set RS = Nothing
Non testé, juste pour donner l'idée... L'usage de GetString est plus rapide que de boucler sur le recordset
sympatix wrote:
Bonjour !
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui
est remplit par la lecture d'un fichier texte, et dont le nombre
d'éléments peut varier (entre 1 et 1500 environ).
Ces éléments contiennent chacun une chaine (string), de 80 à 300
caractères environ, espaces compris)
Mon but est de "ranger" dans une variable normale (scalaire) le
contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ?
Faut-il jongler avec la manipulation des strings (avec les différentes
fonctions comment Instr, Mid, Left, ...et leurs cousines), ou
existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les
éléments d'un tableau ? Ou faut-il que je me mette aux expressions
régulières ?
Je met ci-dessous un extrait (non fonctionnel) du script, qui pour
l'instant se contente
d'afficher dans la page, le contenu du tableau, mais dans le même
ordre que la lecture du fichier texte, donc, non classé
alphabétiquement.
-------Extrait -------------------------
Dim Lit ()
Do
Redim Preserve Lit (n)
Lit (n) = Texte.ReadLine
n = n+1
Loop Until Texte.AtEndOfStream
For each M in Lit
R = R & VbCrlf & M
Affiche.innertext = R
Next
------------Extrait Fin -----------------
D'avance, merci pour vos réponses :-)
En faisant appel à un recordset deconnecté (disconnected recordset) ?
Const adVarChar = 200
Set RS = server.CreateObject("ADODB.Recordset")
RS.fields.append "sLine", adVarChar, 500
RS.CursorLocation = adUseClient
RS.CursorType = adOpenStatic
RS.open
Do
Rs.addnew "sLine", Trim(Texte.ReadLine)
Loop Until Texte.AtEndOfStream
RS.Update
' RS.Resync <- ne sait plus si c'est utile
RS.Sort = "sLine ASC"
RS.MoveFirst
While RS.EoF = False
R = R & RS.Fields.Item("Sline").Value
RS.MoveNext
Wend
RS.Close
Set RS = Nothing
Non testé, juste pour donner l'idée...
L'usage de GetString est plus rapide que de boucler sur le recordset
J'ai dans une page HTA, un tableau (en vbscript) à une dimension, qui est remplit par la lecture d'un fichier texte, et dont le nombre d'éléments peut varier (entre 1 et 1500 environ). Ces éléments contiennent chacun une chaine (string), de 80 à 300 caractères environ, espaces compris) Mon but est de "ranger" dans une variable normale (scalaire) le contenu des éléments du tableau, mais par ordre alphabétique.
Comment faire ? Faut-il jongler avec la manipulation des strings (avec les différentes fonctions comment Instr, Mid, Left, ...et leurs cousines), ou existe-t-il une fonction "Ad-Hoc" pour classer alphabétiquement les éléments d'un tableau ? Ou faut-il que je me mette aux expressions régulières ? Je met ci-dessous un extrait (non fonctionnel) du script, qui pour l'instant se contente d'afficher dans la page, le contenu du tableau, mais dans le même ordre que la lecture du fichier texte, donc, non classé alphabétiquement. -------Extrait ------------------------- Dim Lit () Do Redim Preserve Lit (n) Lit (n) = Texte.ReadLine n = n+1 Loop Until Texte.AtEndOfStream
For each M in Lit R = R & VbCrlf & M Affiche.innertext = R Next ------------Extrait Fin -----------------
D'avance, merci pour vos réponses :-)
En faisant appel à un recordset deconnecté (disconnected recordset) ? Const adVarChar = 200 Set RS = server.CreateObject("ADODB.Recordset") RS.fields.append "sLine", adVarChar, 500 RS.CursorLocation = adUseClient RS.CursorType = adOpenStatic RS.open Do Rs.addnew "sLine", Trim(Texte.ReadLine) Loop Until Texte.AtEndOfStream RS.Update ' RS.Resync <- ne sait plus si c'est utile RS.Sort = "sLine ASC" RS.MoveFirst While RS.EoF = False R = R & RS.Fields.Item("Sline").Value RS.MoveNext Wend RS.Close Set RS = Nothing
Non testé, juste pour donner l'idée... L'usage de GetString est plus rapide que de boucler sur le recordset
sympatix
En faisant appel à un recordset deconnecté (disconnected recordset) ? Const adVarChar = 200 Set RS = server.CreateObject("ADODB.Recordset") RS.fields.append "sLine", adVarChar, 500 RS.CursorLocation = adUseClient RS.CursorType = adOpenStatic RS.open Do Rs.addnew "sLine", Trim(Texte.ReadLine) Loop Until Texte.AtEndOfStream RS.Update ' RS.Resync <- ne sait plus si c'est utile RS.Sort = "sLine ASC" RS.MoveFirst While RS.EoF = False R = R & RS.Fields.Item("Sline").Value RS.MoveNext Wend RS.Close Set RS = Nothing
Non testé, juste pour donner l'idée... L'usage de GetString est plus rapide que de boucler sur le recordset
Salut !
Merci pour ce code. Je n'ai pas encore pu le tester, mais je le garde soigneusement :-) -- Cordialement saint_path_x_arobase_t'es_laide_euh_point_fr
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
En faisant appel à un recordset deconnecté (disconnected recordset) ?
Const adVarChar = 200
Set RS = server.CreateObject("ADODB.Recordset")
RS.fields.append "sLine", adVarChar, 500
RS.CursorLocation = adUseClient
RS.CursorType = adOpenStatic
RS.open
Do
Rs.addnew "sLine", Trim(Texte.ReadLine)
Loop Until Texte.AtEndOfStream
RS.Update
' RS.Resync <- ne sait plus si c'est utile
RS.Sort = "sLine ASC"
RS.MoveFirst
While RS.EoF = False
R = R & RS.Fields.Item("Sline").Value
RS.MoveNext
Wend
RS.Close
Set RS = Nothing
Non testé, juste pour donner l'idée...
L'usage de GetString est plus rapide que de boucler sur le recordset
Salut !
Merci pour ce code. Je n'ai pas encore pu le tester, mais je le garde
soigneusement :-)
--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
En faisant appel à un recordset deconnecté (disconnected recordset) ? Const adVarChar = 200 Set RS = server.CreateObject("ADODB.Recordset") RS.fields.append "sLine", adVarChar, 500 RS.CursorLocation = adUseClient RS.CursorType = adOpenStatic RS.open Do Rs.addnew "sLine", Trim(Texte.ReadLine) Loop Until Texte.AtEndOfStream RS.Update ' RS.Resync <- ne sait plus si c'est utile RS.Sort = "sLine ASC" RS.MoveFirst While RS.EoF = False R = R & RS.Fields.Item("Sline").Value RS.MoveNext Wend RS.Close Set RS = Nothing
Non testé, juste pour donner l'idée... L'usage de GetString est plus rapide que de boucler sur le recordset
Salut !
Merci pour ce code. Je n'ai pas encore pu le tester, mais je le garde soigneusement :-) -- Cordialement saint_path_x_arobase_t'es_laide_euh_point_fr
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)