OVH Cloud OVH Cloud

Probleme de guillemets a enlever dans une grille

2 réponses
Avatar
Karl
Bonjour,
Dans une grid je place mes données délimités par des ","
Le problème, c'est que je me retrouve avec une guillemet dans la première et
la dernière cellules avec ma donnée ("06/12/2006) .............. (RAS")

Le séparateur est défini par "," dans sSeparateur, mais je n'arrive pas à
virer la première et la dernière guillemet du fait que le format des données
dans le fichier et : "Date","Compte","Débit","Crédit","Observation"

Voici ma source, pour info, j'affiche une grille vide avec le nombre total
d'enregistrement avant d'inclure mes données dans les cellules c'est
beaucoup plus rapide...

Merci pour votre aide.
Cordialement

'------------------------------------------

Dim FicfreqGo As String
Dim sLigne As String
Dim sDonnees() As String
Dim I As Long, nbl As Long
Dim f As Integer
Dim nCol As Long
Dim ColWidth
sSeparateur = ""","""

FicfreqGo = App.Path & "\" & LabNomFic.Caption
nbl = 1
' Compte le nombre de lignes**********************************
f = FreeFile
Open FicfreqGo For Input As #f
While Not EOF(f)
Line Input #f, sLigne
nbl = nbl + 1
Wend
Close #f
' Initialisation du nombre de lignes dans le flexgrid*****************
SCGrid1.Rows = nbl - 1 '+ 1
' Lecture de 1 ligne pour calculer le nombre de colonnes***********
nCol = 11
nbl = -1
' Remplissage du flexgrid**********************************************
f = FreeFile
Open FicfreqGo For Input As #f
Do While Not EOF(f)
Line Input #f, sLigne
sDonnees = Split(sLigne, sSeparateur)
' calcul la position et place les données*****************************
nbl = nbl + 1
For I = 1 To nCol - 1
SCGrid1.Text(nbl, I - 1) = sDonnees(I - 1)
SCGrid1.Text(nbl, -1) = Format(nbl + 1, "0000") 'mise en forme
des numeros de ligne**********

Next
Loop
Close #f


/-------------------------------------------------------

2 réponses

Avatar
Jean-marc
"Karl" a écrit dans le message de news:
45978aaa$0$323$
Bonjour,
Dans une grid je place mes données délimités par des ","
Le problème, c'est que je me retrouve avec une guillemet dans la première
et
la dernière cellules avec ma donnée ("06/12/2006) .............. (RAS")

Le séparateur est défini par "," dans sSeparateur, mais je n'arrive pas à
virer la première et la dernière guillemet du fait que le format des
données
dans le fichier et : "Date","Compte","Débit","Crédit","Observation"

Voici ma source, pour info, j'affiche une grille vide avec le nombre total
d'enregistrement avant d'inclure mes données dans les cellules c'est
beaucoup plus rapide...

Merci pour votre aide.



Hello,

Tes données ont un format régulier:
"aaa", "bbb", "ccc", ...

Il faut les splitter comme tu le fais, mais en spécifiant seulement
la virgule comme séparateur:

separateur = ","

Tu vas te retrouver dans sDonnees() avec ceci:
"aaa"
"bbb"
"ccc"

Pour te débarasser des guillemets, il suffit d'utiliser la
fonction Replace.

Voici par exemple:

' ajouter une variable
Dim ma_donnne as string

' et dans la boucle:

sDonnees = Split(sLigne, sSeparateur)
' calcul la position et place les données
nbl = nbl + 1
For I = 1 To nCol - 1



===>>>>> ma_donnee = replace(sDonnees(I - 1), chr$(34), "")

SCGrid1.Text(nbl, I - 1) = ma_donnee



Et voila, le tour est joué!

Petit conseil valable pour tous le problèmes:
=> Bien séparer les traitements est toujours la meilleure solution.

Ici, il faut:
1) Extraire les données (splitter avec la virgule)
2) Traiter les données (enlever les guillements superflus)

Bonne journée!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Karl
Bonsoir,
Merci pour les infos.
Bonne soirée et meilleurs voeux à tous...........
Cordialement Karl