Page 1 sur 1

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

Posté : ven. 15 déc. 2023 08:14
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)

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

Posté : ven. 15 déc. 2023 09:33
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

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

Posté : ven. 15 déc. 2023 13:48
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)

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

Posté : ven. 15 déc. 2023 14:27
par Boulanza
cher mikell bonjour,
Merci infiniment pour votre aide très attendue.
Quel soulagement!
Cordialement.

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

Posté : sam. 16 déc. 2023 07:23
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)

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

Posté : sam. 16 déc. 2023 21:22
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.