[R] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

[R] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

#1

Message par Boulanza »

Bonjour,
Votre aide s'il vous plaît.
j'ai cherché par tout dans tous les forums AutoIt en FR, ES, AN pour trouver une solution qui marche pour lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z) qui doit marcher correctement à 100% . Vous trouverez une idée de de Monsieur Tlem qui a besoin de plus de recherche pour qu'elle soit parfaite et fonctionnelle. Pour cela je vous prie de revoir le code ci-joint.
Merci infiniment.
Cordialement.

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>

 Local $File = @ScriptDir&"\Registry2.txt"
 Local $Sortie = @ScriptDir&"\Registry3_Out.txt"
Dim $aArray

If Not _FileReadToArray ($file, $aArray, 0) Then
	   MsgBox(4096,"Error", " Error reading txt to Array     error:" & @error)
	   Exit
EndIf
$aArrayUnique = _ArrayUnique($aArray, 0, 0, 0, 0)
_ArraySort($aArrayUnique)
_FileWriteFromArray($Sortie, $aArrayUnique)
Fichiers joints
Registry2.txt
(1.06 Kio) Téléchargé 61 fois
Modifié en dernier par Boulanza le ven. 15 déc. 2023 14:38, modifié 2 fois.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

#2

Message par Boulanza »

Un autre script qui ne marche pas correctement :

Code : Tout sélectionner

;Lister par ordre alphabétique.
$filename1 = @ScriptDir&"\Registry1.txt"
$filename2 = @ScriptDir&"\Registry2.txt"
$Sortie = @ScriptDir&"\Registry3_Out.txt"
Dim $aSort
If Not _FileReadToArray($filename2,$aSort) Then
   MsgBox(4096,"Error", " Error reading txt to Array     error:" & @error)
   Exit
EndIf

; on retire le premier élèment (celui qui retourne le nbre de valeur dans le array position 0)
_ArrayDelete($aSort,0)
_ArraySort($aSort) ; Rangement croissant (valeur 1 décroissant)
;_ArrayDisplay($aSort) ; affiche le array (pas obligatoire)

; boucle sur le array & ecriture du fichier de sortie
For $x = 0 to UBound($aSort) - 1
    FileWriteLine($Sortie,$aSort[$x])
Next
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [ ] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

#3

Message par mikell »

Voilà
Je n'ai pas mis les éventuels _ArrayToString et FileWrite à suivre
#Include <Array.au3>

$res = StringRegExp(FileRead("Registry2.txt"), '\S+', 3)
_ArraySort($res)
_ArrayDisplay($res)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [ ] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

#4

Message par Boulanza »

cher mikell bonjour,
Merci infiniment pour votre aide très attendue.
Quel soulagement!
Cordialement.
Avatar du membre
Nine
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 104
Enregistré le : ven. 17 avr. 2020 01:23
Status : Hors ligne

Re: [R] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

#5

Message par Nine »

Il y a un risque d'erreur si un des fichiers contient un espace dans son nom.

Code : Tout sélectionner

#Include <Array.au3>

$sList = FileRead("Registry2.txt") & "Test avec espace.exe" & @CRLF
$res = StringRegExp($sList, '(?m)^\h*(.+)\h*$', 3)
_ArraySort($res)
_ArrayDisplay($res)
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Lister les lignes d'un fichier texte par ordre alphabétique décroissant (de a/A à z/Z)

#6

Message par Boulanza »

Merci infiniment Nine pour cette suggestion qui est à sa juste valeur.
J'ai toujours appréciée les hommes du forum AutoIt: Des hommes au service des hommes.
Répondre