Les Snippets

Connexion

Split selon le nombre max de caractères voulu, en tenant compte des retours chariot et des chaînes non-sécables

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 02/09/2007 14:23:36 et initié par PCPT [Liste]
Date de mise à jour : 02/09/2007 22:32:41
Vue : 2343
Catégorie(s) : Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA



Langage : VB6 , VBA
Date ajout : 02/09/2007
Posté par PCPT [Liste]
DateMAJ : 02/09/2007
Private Function SplitNumberChars(ByVal sStr As String, ByVal iCut  As Long, Optional RemoveVbCrLf As Boolean = False, Optional SeparChar As String = "-"Optional bUseMnemonic As Boolean False) As  String()
    Dim sRet As String, i As Long, lPos As Long, bCR As Boolean, sLine As String
'   vire les VBCRLF et  les ESPACE multiples générés
    If RemoveVbCrLf Then
        sStr = Trim$(Replace(sStr, vbCrLf, " "))
        Do While InStr(1, sStr, "  ") <> 0
            sStr = Replace(sStr, "  ", " ")
        Loop
    Else
        sStr = Replace(sStr, vbCrLf, " " & vbCrLf)
    End If
'   traitement
    sRet = vbNullString
    Do While LenB(sStr) > 0
'       retour chariot le plus loin
        lPos = InStrRev(Left$(sStr, iCut + 2), vbCrLf)
        If lPos = Then
'           y'en a pas? on  cherche l'espace le plus loin
            lPos = InStrRev(Left$(sStr, iCut + 1), " ")
            bCR = False
        Else
            bCR = True
        End If

        If lPos = Then
'           lpos toujours à zéro? donc ligne  non-sécable
            If Len(sStr) > iCut Then
                If RemoveVbCrLf Then
                    sRet = sRet & Left$(sStr, iCut - 1) & SeparChar & vbCrLf
                    sStr = SeparChar & Mid$(sStr, iCut)
                Else
                    sRet = sRet & Left$(sStr, iCut) & SeparChar &  vbCrLf
                    sStr = SeparChar & Mid$(sStr, iCut + 1)
                End If
            Else
                sRet = sRet & sStr & vbCrLf
                sStr = vbNullString
            End If
        Else
            sLine = Left$(sStr, lPos - 1)
            sStr = Right$(sStr, Len(sStr) - Len(sLine) - IIf(bCR, 2, 1))
            sRet = sRet & sLine & vbCrLf
        End If
   Loop
'   pas de  UseMnemonic?....
    If Not bUseMnemonic Then sRet = Replace(sRet, "&""&&")

'   retour
    SplitNumberChars = Split(sRet, vbCrLf)
End Function

Remarque :
permet par exemple de faire un retour à la ligne dès l'espace se situant avant le 40ème caractère, tout en concervant les retours chariot (ou non, en option), et de couper les chaînes au 39ème caractère si le mot complet ne contient pas d'espace (un lien par exemple)

finalité : texte semi-justifié, tenant compte d'une "pré" mise en page

Snippets en rapport avec : Taille, Split, Caractères, Nombre, Couper



Codes sources en rapport avec : Taille, Split, Caractères, Nombre, Couper

{PHP} CONTOURNER LA LIMITE DE TAILLE DES FICHIERS IMPOSÉE PAR CERTAINS HÉBERGEURS
Vous remarquerez sans doute que de nos jours bon nombre d'hébergeur (grauits surtout) interdisent le...

{JAVA / J2EE} CLASSE UTILE POUR LES FICHIERS
Toujours utile d'avoir une classe comme ca sous la main. J'ai je crois bien expliqué le code... je ...

{SQL} NB LIGNES PAR TABLE
Ce code m'avait servi il y a un an pour "mesurer" une base de données en renvoyant pour chaque table...

{Visual Basic, VB6, VB.NET, VB 2005} CHIFFRE EN LETTRE FONCTION
Une petite fonction simlpe pour transformer un chiffre en lettre. Exemple: "15193" >> dix ...

{Visual Basic, VB6, VB.NET, VB 2005} COUPER-RECOLLER DES FICHIERS
Bon ben vola un vieux source que j'me decide enfin a mettre sur le site... Le programme coupe un fi...

{Visual Basic, VB6, VB.NET, VB 2005} SPLITEUR DE FICHIER
Un petit programme simple qui permet de découper un fichier en morceaux (de taille choisie) puis de ...

{Delphi} VFONTS : OUTIL DE VISUALISATION DES POLICES CARACTÈRES INSTALLÉES - RECHERCHES, CRÉATION DE SÉLECTION MÉMORISÉES, AIDE COMPLÈTE EN FRANÇAIS.
Ce petit logiciel, sous licence GPL, est destiné à vous aider à choisir certaines polices de caractè...

{PHP} COMPTER LE NOMBRE DE FICHIERS DANS UN DOSSIER
Après pas mal de recherche, je n'ai pas réellement trouvé un code qui me convenait. J'ai donc trouvé...

{Delphi} DÉCOUVRIR LE NOMBRE MYSTÈRE
Petit jeu tout simple développé par mes soins, il faut découvrir un nombre entier compris entre 1 et...

{Visual Basic, VB6, VB.NET, VB 2005} VACHE TAUREAU BY CHIHAOUI
Salut ! bref, un jeu populaire Vache Taureau! l'Ordi génère un nombre aléatoire et l'utilisateur ...