autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014
-
Modifié par autodidacte3 le 25/03/2014 à 16:32
autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014
-
26 mars 2014 à 18:32
Bonjour,
j'enregistrer mon datagridview en fichier de sortie fIchierEnployes.txt jusque là aucun souci :)
Mon problème c'est que le datagridview comporte six colonne de ma base .mdb la colonne 4 NetaPaye est numérique avec virgule, au cours de l'enregistrement je veux pas de la virgule dans le fichier de sotie exemple :
avec virgule
*0000000026540449712471,21PIERRE BRENT 1
*0000000000786954761255,00RUBEN DRIES 1
*0000000006530476781050,01SANDER THOMAS 1
...
sans virgule
*000000002654044971247121PIERRE BRENT 1
...
mon programme
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim numCols As Integer = DataGridView1.ColumnCount Dim numRows As Integer = DataGridView1.RowCount - 1 Dim strDestinationFile As String = "F:\MesPrg\\fIchierEnployes.txt" Dim LireTable As TextWriter = New StreamWriter(strDestinationFile)
For count As Integer = 0 To numRows - 1 For count2 As Integer = 1 To numCols - 1 LireTable.Write(DataGridView1.Rows(count).Cells(count2).Value) If (count2 <> numCols) Then 'ici je cherche a supprimer les virgules If count2 = 6 Then LireTable.Write(" ") 'ici je sépare le nom et prenom par un espace Else LireTable.Write("") End If End If
Next LireTable.WriteLine() Next LireTable.Close() End Sub
Merci de votre aide.
[ ]
A voir également:
Datagridview et sortie en fichier text sans virgules
cs_ShayW
Messages postés3258Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201956 25 mars 2014 à 20:53
Bonjour
Pas bien compris
tu veux retirer 1 la virgule du datagridview 4
2 ou écrire la donnée sans virgule
pour 2 essaie
Dim NetaPaye As String Dim sep As String sep = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
Dim listout As New List(Of String) Dim str As String For row = 0 To DataGridView1.RowCount - 2 str = DataGridView1.Rows(row).Cells("column1").Value.ToString str &= DataGridView1.Rows(row).Cells("column2").Value.ToString str &= DataGridView1.Rows(row).Cells("column3").Value.ToString NetaPaye = DataGridView1.Rows(row).Cells("column4").Value.ToString NetaPaye = NetaPaye.Substring(0, NetaPaye.IndexOf(sep)) & NetaPaye.Substring(NetaPaye.IndexOf(sep) + 1) str &= NetaPaye & DataGridView1.Rows(row).Cells("column5").Value.ToString str &= " " & DataGridView1.Rows(row).Cells("column6").Value.ToString listout.Add(str) Next IO.File.WriteAllLines(" gftfrtr", listout.ToArray)
autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014 25 mars 2014 à 22:50
Merci encore à vous cs_ShayW
ça marche avec un tout petit "mais" ,
si les deux chiffres après la virgule "les deux décimales" du NetaPaye est zéro l'erreur suivante s'affiche
" ArgumentOutOfRangeException n'a pas été gérée ". La longueur ne peut pas être inférieure à zéro. Nom du paramètre : length "
A savoir, j'ai ajouté: " Imports System.Collections.Generic " dans l'espace de noms parce que "List(Of String)" type Liste non défini
les nouveaux lignes du code :
Dim NetaPaye As String Dim sep As String sep = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
Dim numRows As Integer = DataGridView1.RowCount - 1 Dim listout As New List(Of String) Dim str As String
cs_ShayW
Messages postés3258Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201956 25 mars 2014 à 23:17
A savoir, j'ai ajouté: " Imports System.Collections.Generic " dans l'espace de noms parce que "List(Of String)" type Liste non défini
pas chez moi
verifie si dans les réferences (project -> properties-> references)
system.collections.generic est coché
si les deux chiffres après la virgule "les deux décimales" du NetaPaye est zéro l'erreur suivante s'affiche
à quelle ligne tu as l'erreur
pourquoi tu dois te servir d'un fichier txt ,la bdd ne suffit pas ?
autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014 25 mars 2014 à 23:53
bonsoir cs_ShayW
L'erreur est à la ligne :
NetaPaye = NetaPaye.Substring(0, NetaPaye.IndexOf(sep)) & NetaPaye.Substring(NetaPaye.IndexOf(sep) + 1)
en faite le fichier txt sert dans un autre ancien programme de traitement de gestion de dépense et d'archive avec d'autre fichiers text "traçabilité informatique oblige" que je devrais copier et transmettre chaque mois, Ce fichier m'épargne de beaucoup de travail et de paperasses...
le bug est du à autre chose
j'ai testé et pas exception relevé
Dim sep As String sep = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator Dim NetaPaye As String NetaPaye = "12323233.00" NetaPaye = NetaPaye.Substring(0, NetaPaye.IndexOf(sep)) & NetaPaye.Substring(NetaPaye.IndexOf(sep) + 1)
autodidacte3
Messages postés58Date d'inscriptionmardi 21 juillet 2009StatutMembreDernière intervention25 décembre 2014 26 mars 2014 à 18:32
Bonjour
Oui ça marche :)
je risque gros avec mon bidouillage; plusieurs textbox et deux datagridview lier avec quelques essais de formatage de colonnes en Double, string... Ils ont eu raison de moi. :))
25 mars 2014 à 22:50
ça marche avec un tout petit "mais" ,
si les deux chiffres après la virgule "les deux décimales" du NetaPaye est zéro l'erreur suivante s'affiche
" ArgumentOutOfRangeException n'a pas été gérée ". La longueur ne peut pas être inférieure à zéro. Nom du paramètre : length "
A savoir, j'ai ajouté: " Imports System.Collections.Generic " dans l'espace de noms parce que "List(Of String)" type Liste non défini
les nouveaux lignes du code :
je vous tire mon chapeau.
25 mars 2014 à 23:17
pas chez moi
verifie si dans les réferences (project -> properties-> references)
system.collections.generic est coché
si les deux chiffres après la virgule "les deux décimales" du NetaPaye est zéro l'erreur suivante s'affiche
à quelle ligne tu as l'erreur
pourquoi tu dois te servir d'un fichier txt ,la bdd ne suffit pas ?
25 mars 2014 à 23:53
L'erreur est à la ligne :
NetaPaye = NetaPaye.Substring(0, NetaPaye.IndexOf(sep)) & NetaPaye.Substring(NetaPaye.IndexOf(sep) + 1)
en faite le fichier txt sert dans un autre ancien programme de traitement de gestion de dépense et d'archive avec d'autre fichiers text "traçabilité informatique oblige" que je devrais copier et transmettre chaque mois, Ce fichier m'épargne de beaucoup de travail et de paperasses...