Access VBA supprimer CR & LF seulement à partir du début d'une chaîne de texte en recherchant pour eux
J'ai besoin de supprimer les sauts de ligne à partir du début d'une note de service type de dossiers. Je ne veux pas utiliser la fonction remplacer car elle permettrait de supprimer tous les sauts de ligne à partir de l'enregistrement qui n'est pas souhaité. Son seul les sauts de ligne au début du champ que je suis intéressé par la suppression de.
Par ailleurs, le mes dossiers ne sont pas toujours commencer avec un saut de ligne donc je ne peux pas vraiment utiliser le texte de positionnement, la solution serait de chercher pour le saut de ligne au début au lieu de toujours attendre au début.
OriginalL'auteur uZI | 2010-03-28
Vous devez vous connecter pour publier un commentaire.
Ce sera assurez-vous que la chaîne n'est pas vide, puis exécute une boucle simple pour supprimer le caractère la plus à gauche tant qu'il est une CR (chr(13)), LF (chr(10)), ou un espace (" ").
Une fois que la boucle frappe le premier caractère qui ne correspond pas aux critères, il s'arrête et vous avez le résultat souhaité de découper l'ensemble des CR, LF, et de l'espace uniquement des caractères à partir du début de la chaîne.
Depuis qu'il est relativement court, je viens de le mettre dans la procédure d'événement en cas de besoin, vous pouvez également le modifier pour être une fonction publique dans un module, si vous voyez l'ajustement.
OriginalL'auteur SBinVA
Remplacer ne pas remplacer toutes les occurences lorsque vous utilisez le comte argument: http://office.microsoft.com/en-us/access/HA012288981033.aspx
Vous pouvez tester donc:
OriginalL'auteur Fionnuala
Amélioration sur ce SBinVA a écrit
Le code suivant n'a pas besoin de l'instruction if et il est facile de les étendre à plus de caractère (espace, tabulation, etc.).
(Il suppose également des sauts de ligne peut provenir d'un fichier provenant d'autres systèmes, de sorte que vbCr et vbLf sont utilisés séparément, qui prend soin de tous les scénarios).
OriginalL'auteur Magnus
Envisager une instruction SQL UPDATE de jeter seulement ceux CRLF au début de chaque champ mémo.
OriginalL'auteur HansUp
Note alternatives pour strTestChar de sorte que vous pouvez voir l'action. Vous devriez noter "-----" dans votre Fenêtre d'exécution est suivie par un CR, donc une ligne vide; et ce peut être retiré. Mi(strString, 2, 100) aura besoin de quelques ajustements, mais l'idée est de copier sur votre chaîne de note sans le premier caractère.
OriginalL'auteur Smandoli
Je voudrais utiliser une fonction comme celle-ci. C'est assez simple et facilement adaptable à d'autres circonstances. Par exemple, pour supprimer les espaces en trop, ajouter un test à la
if (c = vbCr)
ligne.Voici un test de routine:
BTW, j'ai essayé de regarder votre échantillon de données, mais il est dit que le document n'est pas disponible. Peut-être vous avez besoin de la rendre publique ou de quelque chose?
OriginalL'auteur Todd
Ma contribution à VBA trimwhitespace() de la fonction, boucle retrouve pour le premier non-blanc index, divise une chaîne de caractères, puis même chose pour la fuite d'espaces. Gauche+Droite fonctions sont exécutées qu'une seule fois. Si vous avez besoin d'leftTrim ou rightTrim il est facile d'introduire de nouveaux arguments ou des fonctions distinctes.
OriginalL'auteur Whome
Ce sera couper tous les principaux et espaces, retours à la ligne, tabulations, et d'autres caractères non-imprimables.
Vous pouvez utiliser cette routine pour tester:
OriginalL'auteur Ben