Tri par Ordre Alphabétique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 059 fois - Téléchargée 10 fois

Contenu du snippet

Module Module1
    Sub Main()
        Dim r As Char 'variable pour la fonction Sans-Accent
        Dim text, Mot, temp, temp1 As String 'variables de transfert temporaire
        Dim Nom(5) As String  'Tableau véritable
        Dim Name(5) As String 'Tableau de traitement

        'Saisies

        For i As Integer = 1 To 5
            Console.Write("tapez votre mot    N° " & i & "    ")
            text = Console.ReadLine         'Saisie d'un mot dans la variable de transfert
            Nom(i) = text                   'Remplir le tableau véritable
            Mot = ""                        'Vider la variable de transfert
            For j As Integer = 1 To Len(text)
                r = Sans_Accents(Mid(text, j, 1))
                Mot &= r
            Next
            Name(i) = Mot.ToLower            'Remplir le tableau de traitement
        Next

        'Tri à bulle
        For i As Integer = 1 To 4
            For j As Integer = i + 1 To 5
                If Name(i) > Name(j) Then   'Traitement
                    temp1 = Name(i)         'Swap sur le tablau de traitement
                    Name(i) = Name(j)
                    Name(j) = temp1

                    temp = Nom(i)           'Swap sur le tableau véritable
                    Nom(i) = Nom(j)
                    Nom(j) = temp
                End If
            Next
        Next

        'Affichage
        Console.WriteLine()
        For i As Integer = 1 To 5
            Console.WriteLine(Nom(i))
        Next

        Console.ReadLine()

    End Sub

    Function Sans_Accents(ByVal Lt As Char) As Char
        Dim Res As Char
        Select Case Lt
            Case "à", "â", "ä"
                Res = "a"
            Case "é", "è", "ê", "ë"
                Res = "e"
            Case "î", "ï"
                Res = "i"
            Case "ô", "ö"
                Res = "o"
            Case "ù", "û", "ü"
                Res = "u"
            Case "ÿ"
                Res = "y"
            Case "ç"
                Res = "c"
            Case Else
                Return Lt       'Retourne les caractères non mentionnés     
        End Select
        Return Res              'Retourne les caractères mentionnés
    End Function

End Module

A voir également

Ajouter un commentaire

Commentaires

NHenry
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 août 2019
133 -
Pourquoi ne pas avoir utiliser un SortedList ?
Car la méthode de tri est très artisanale.
Whismeril
Messages postés
13635
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
22 août 2019
298 > NHenry
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonsoir ou une requête linq?
Whismeril
Messages postés
13635
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
22 août 2019
298 > NHenry
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Et pour les accents, il ne faut pas oublier, les cédilles, les tildes, brefs les signes diachroniques, voici une méthode qui les supprime tous
''' <summary>
		''' Methode qui supprime les accents et autres signes diacritiques, source http://www.developpez.net/forums/d286030/dotnet/langages/csharp/supprimer-accents-lettre/
		''' </summary>
		''' <param name="stIn"></param>
		''' <returns></returns>
		Private Function RemoveDiacritics(ByVal stIn As String) As String
			Dim stFormD As String = stIn.Normalize(NormalizationForm.FormD)
			Dim sb As New StringBuilder()

			For ich As Integer = 0 To stFormD.Length - 1
				Dim uc As UnicodeCategory = CharUnicodeInfo.GetUnicodeCategory(stFormD.Chars(ich))
				If uc <> UnicodeCategory.NonSpacingMark Then
					sb.Append(stFormD.Chars(ich))
				End If
			Next ich

			Return (sb.ToString().Normalize(NormalizationForm.FormC))
		End Function

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.