Bonjour,
j'ai un batch qui permet de récupérer des données à partir d'une base de données et d'un fichier csv. Ce batch permet de créer un fichier .csv contenant toutes ces données. Une des données est une colonne appelée "COMMENTAIRES". Celle-ci peut contenir une à plusieurs lignes.
Lors de la récupération des données, pour une raison qui m'échappe, certaines cellules contiennent bien les deux lignes mais d'autres n'en contiennent qu'une seule, sachant que la deuxième ligne est prise comme un nouvel enregistrement et mise sur la ligne suivante du fichier csv (format excel) (cf fichier en pièce jointe)
Ici, comrow est une ligne d'un dataset utilisée dans les traitement du batch, c'est elle qui contient les données qui seront ensuite insérées dans le fichier csv.
J'ai cherché à savoir ce que le champ contenait comme caractère :
Cette fonction retourne True et pour les caractères vbCr, vbCrLf et vbNewLine, la fonction retourne False.
Code : Sélectionner tout - Visualiser dans une fenêtre à part comRow.COMMENTAIRES.Contains(cchar(vblf))
J'ai donc essayé de remplacer le caractère vbLf (les autres aussi par désespoir de cause) par "" comme suit :
Ce qui n'a rien changé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim ligneSeparators() As Char = {CChar(vbNewLine), CChar(vbCr), CChar(vbLf), CChar(vbCrLf)} comRow = DirectCast(DataRetriever.Comment.Rows.Find(PrimaryKey), dsPortfolio.CommentRow) comRow.COMMENTAIRES.Replace(ligneSeparators, "") comRow.COMMENTAIRES.Replace(CChar(vbNewLine), "") comRow.COMMENTAIRES.Replace(CChar(vbCr), "") comRow.COMMENTAIRES.Replace(CChar(vbLf), "") comRow.COMMENTAIRES.Replace(CChar(vbCrLf), "")
J'ai donc besoin de votre aide pour pouvoir récupérer dans mon fichier csv, les lignes avec saut de ligne lorsqu'il est nécessaire mais dans la même cellule.
Je tiens à préciser que je ne peux pas modifier les valeurs en base.
En espérant avoir été assez claire, merci d'avance pour votre aide.
Partager