Ordre alphabetique [Résolu]

cs_ludwig89 47 Messages postés mercredi 1 septembre 2004Date d'inscription 18 septembre 2009 Dernière intervention - 16 sept. 2004 à 10:15 - Dernière réponse : Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention
- 16 sept. 2004 à 13:29
bonjour a vous tous

en vb6

g un fichier texte avec ligne

ge voudrai pouvoir mettre les lignes par ordre alphabetique de A => Z ou de Z => A et ne pas prendre en compte les x premieres lignes

de plus je voudrai pouvoir effacer les lignes en doublons

comment faire????

merci de vos réponse

grace a vous j'avance a grand pas dans mon soft et apprend bcp, merci encore
Afficher la suite 

5 réponses

pcpunch 1244 Messages postés mardi 7 mai 2002Date d'inscription 10 février 2016 Dernière intervention - 16 sept. 2004 à 12:54
+3
Utile
Voici un petit exemple afin de trié les ligne d'un fichier a partir de la ligne X (sans doublons)

Pourt le tester un fichier ici "c:\fichier.txt", 1 texbox(text1 , multiligne=true) et une listbox (list1 , sorted=true)

'Trie a l'aide d'un listbox 'Propriété Sorted=true
'--------------------------
Dim NonPris As Integer, Passage As Integer, Tmp As String
Dim Sens As Integer '0=A>Z 1=Z>A
NonPris = 1 'ne prend pas les 2 premiere ligne
Sens = 1 '0=A>Z 1=Z>A

'Lecture du fichier  dans un tableau
Dim Ligne() As String, X As Integer
Open "c:\fichier.txt" For Input As #1
Do While Not EOF(1)
Passage = Passage + 1
Line Input #1, Tmp
If Passage > NonPris Then
    DoEvents
    ReDim Preserve Ligne(X)
    Ligne(X) = Tmp
    X = X + 1
End If

Loop
Close #1

'affichage dans le listbox avec verification des doublons
Dim Existe As Boolean
Existe = False

For i = 0 To UBound(Ligne)

    For a = 0 To List1.ListCount - 1        If Ligne(i) List1.List(a) Then Existe True: Exit For
    Next a
If Not Existe Then List1.AddItem Ligne(i)
Existe = False
Next i

'Sens d'affichage du tableau
Dim Trie() As String
X = 0

Select Case Sens

Case 0 'Sens A>Z
For i = 0 To List1.ListCount - 1
ReDim Preserve Trie(X)
Trie(X) = List1.List(i)
X = X + 1
Next i

Case 1 'Sens Z>A

For i = List1.ListCount - 1 To 0 Step -1
ReDim Preserve Trie(X)
Trie(X) = List1.List(i)
X = X + 1
Next i

End Select

'Affichage dans text1
Text1 = vbNullString
For i = 0 To UBound(Trie)
Text1 = Text1 & Trie(i) & vbCrLf
Next i


voila ++
Cette réponse vous a-t-elle aidé ?  
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 16 sept. 2004 à 10:37
0
Utile
SAlut,

une petite precision s il te plait, tu veux les ranger dans l ordre suivant la premiere lettre de la ligne c est ca ?

@+

-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 16 sept. 2004 à 10:40
0
Utile
un moyen simple serait l'utilisation d'une listbox avec la propriété Sorted = True

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 16 sept. 2004 à 10:41
0
Utile
Il existe quelques algorithme de tri sur ce site (shell, tri rapide), utilise les pour les appliquer à ton problème..

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 16 sept. 2004 à 13:29
0
Utile
ok avec PcPunch...

pour les doublons, penses aux API

SendMessage LB_FINDSTRINGEXACT...

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.