bonjour,
je suis débutante en vb5, svp aidez moi, je dois exporter mon data set vers fichier texte en intégrant des caractères spéciaux "|" , ";" et ",".8O
merci d'avance!
Version imprimable
bonjour,
je suis débutante en vb5, svp aidez moi, je dois exporter mon data set vers fichier texte en intégrant des caractères spéciaux "|" , ";" et ",".8O
merci d'avance!
Tu es sure que c'est du vb5 et non pas vb.net 2005 ?????
Plutôt c'est Microsoft Visual Studio 2005. je m'expliques un peu, j'ai développé une petite application qui se connecte à une base informix, j'affiche en local et exporte vers Excel. Maintenant je souhaite intégrer l'option d'export vers txt.
excuses,si je suis pas claire dans mon expression.
Bonjour,
Tu souhaites exporter tes données dans un fichier texte, c'est bien ça ? Ou tu veux enregistrer ton dataset dans un fichier (ce n'est pas pareil, là tu enregistrerai le tout en xml).
Pour faire un enregistrement dans un fichier texte, regarde la FAQ sur comment écrire dans un fichier.
Il te suffira ensuite de parcourir toutes les tables de ton dataset et tous les enregistrements des tables pour écrire chaque ligne une à une !
bonjour,
je souhaite exporter mes données dans un fichier texte, par exemple, voilà les codes qui me permet d'exporter mon dataset vers Excel:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 Public Sub ExporterVersExcel(ByVal unDataSet As DataSet) Dim myTable As DataTable Dim myRow As DataRow Dim myColumn As DataColumn Dim CheminDuFichier As String Dim i, j As Integer Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmGenererExcelAvecDataSet)) Dim SFDialogEnregistrer As New System.Windows.Forms.SaveFileDialog SFDialogEnregistrer.Title = "SGT - Choisir un Emplacement pour Enregistrer le Fichier Excel." SFDialogEnregistrer.InitialDirectory = "C:\" SFDialogEnregistrer.Filter = "Fichiers Excel (*.xls)|*.xls" SFDialogEnregistrer.FilterIndex = 2 SFDialogEnregistrer.RestoreDirectory = True If SFDialogEnregistrer.ShowDialog() = Windows.Forms.DialogResult.OK Then CheminDuFichier = SFDialogEnregistrer.FileName Try Dim app As New Microsoft.Office.Interop.Excel.Application Dim exbook As Microsoft.Office.Interop.Excel.Workbook Dim exsheet As Microsoft.Office.Interop.Excel.Worksheet exbook = app.Workbooks.Add exsheet = exbook.Sheets(1) i = 0 REM DEFINITION DES EN-TETE DE COLONNES For Each myTable In unDataSet.Tables For Each myColumn In myTable.Columns REM Couleur de fond (verte clair) exsheet.Cells(1, i + 1).Interior.ColorIndex = 35 REM Choix de la police exsheet.Cells(1, i + 1).Font.Name = "Times New Roman" REM Taille de la police exsheet.Cells(1, i + 1).Font.Size = 11 REM Caractères gras exsheet.Cells(1, i + 1).Font.Bold = True REM export vers Excel des en tetes exsheet.Cells(1, i + 1) = myTable.Columns(i).ColumnName i = i + 1 Next Next j = 2 REM CHARGEMENT DES DONNEES DANS LA FEUILLE EXCEL For Each myTable In unDataSet.Tables For Each myRow In myTable.Rows i = 1 For Each myColumn In myTable.Columns REM Choix de la police exsheet.Cells(j, i).Font.Name = "Arial Narrow" REM Taille de la police exsheet.Cells(j, i).Font.Size = 10 REM Format de cellule : texte exsheet.Cells(j, i).NumberFormat = "@" REM Format de cellule : nombre exsheet.Cells(j, 4).NumberFormat = "" REM export vers Excel des données exsheet.Cells(j, i) = CType(myRow(myColumn) & "", String) i += 1 Next myColumn j += 1 Next myRow Next myTable REM ENREGISTREMENT DU FICHIER exbook.SaveAs(CheminDuFichier) app.Visible = True Exit Sub Catch ex As Exception MessageBox.Show("Catch Select (ExporterVersExcel): " + ex.ToString) End Try End If End Sub
Citation:
Pour faire un enregistrement dans un fichier texte, regarde la FAQ sur comment écrire dans un fichier.
Il te suffira ensuite de parcourir toutes les tables de ton dataset et tous les enregistrements des tables pour écrire chaque ligne une à une !
suppose que tu as un dataset qui s'appelle MonDataSet et qui contient une table client que tu souhaites exporter, et la table contient 4 colonnes, et tu veux séparer les colonnes par des ; tu peux faire comme suit :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim Schema as string 'Schema du fichier destinatin Schema ="C:\TonFichier.txt" Dim StrLigne As String() = New String(MonDataSet.Tables("Clients").Rows.Count - 1) {} Dim i As Integer = 0 For Each dr As DataRow In MonDataSet.Tables("Clients").Rows StrLigne(i) = dr.ItemArray.GetValue(0).ToString() & ";" StrLigne(i) += dr.ItemArray.GetValue(1).ToString() & ";" StrLigne(i) += dr.ItemArray.GetValue(2).ToString() & ";" StrLigne(i) += dr.ItemArray.GetValue(2).ToString() i += 1 Next File.WriteAllLines(Schema , StrLigne) MessageBox.Show("Données Exporter vers le fichier ")
Une Classe gratuite qui fait le job ici : http://www.filehelpers.com/
bonjour,
je suis débrouillarde, j'ai eue des codes qui me permet d'extraire vers fichier texte, seulement mes données ne st pas exploitable, en faite, ils exportent sur une seule ligne les entêtes et les données, alors que je veux les exporter séparément.
merci par avance, si quelqu'un peut m'aider à régler c pb.
voici les codes sources:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Public Sub FichierTexte(ByVal DataSet As DataSet) Dim myStreamWriter As StreamWriter Dim CheminDuFichier As String Dim i, j As Integer Dim myTable As DataTable Dim myRow As DataRow Dim myColumn As DataColumn Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmGenererExcelAvecDataSet)) Dim SFDialogEnregistrer As New System.Windows.Forms.SaveFileDialog SFDialogEnregistrer.Title = "SGT - Choisir un Emplacement pour Enregistrer le Fichier Excel." SFDialogEnregistrer.InitialDirectory = "C:\" SFDialogEnregistrer.Filter = "Fichiers Texte (*.txt)|*.txt" SFDialogEnregistrer.FilterIndex = 2 SFDialogEnregistrer.RestoreDirectory = True If SFDialogEnregistrer.ShowDialog() = Windows.Forms.DialogResult.OK Then CheminDuFichier = SFDialogEnregistrer.FileName Try 'Instanciation du StreamWriter avec passage du nom du fichier myStreamWriter = New StreamWriter(CheminDuFichier) i = 0 REM DEFINITION DES EN-TETE DE COLONNES For Each myTable In DataSet.Tables For Each myColumn In myTable.Columns REM export vers fichier Texte des en tetes myStreamWriter.Write(myTable.Columns(i).ColumnName & ";") i = i + 1 Next Next j = 2 REM CHARGEMENT DES DONNEES DANS LE FICHIER TEXTE For Each myTable In DataSet.Tables For Each myRow In myTable.Rows i = 1 For Each myColumn In myTable.Columns REM export vers fichier Texte des données myStreamWriter.Write(myRow(myColumn) & ";") i += 1 Next myColumn j += 1 Next myRow Next myTable 'Fermeture du StreamWriter (Trés important) myStreamWriter.Close() MsgBox(" Enregistrement Terminé !", MsgBoxStyle.Information) Catch ex As Exception MessageBox.Show("Catch Select (ExporterVersTexte): " + ex.ToString) End Try End If End Sub
Remplace myStreamWriter.Write par myStreamWriter.WriteLine
Bonjour,
pour une présentation en colonnes, usez des tabulations, vbTab, vbCrLf.
Dans l'esprit suivant:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 For Each myTable In DataSet.Tables For Each myColumn In myTable.Columns myStreamWriter.Write(myColumn.ColumnName & vbTab) Next myStreamWriter.Write(vbCrLf) For Each myRow In myTable.Rows For Each value As [Object] In myRow.ItemArray myStreamWriter.Write(value.ToString() & vbTab) Next myStreamWriter.Write(vbCrLf) Next myRow myStreamWriter.Write(vbCrLf) Next
bonjour,
merci, j'ai pue régler le pb d'export des entêtes et des données séparément,
j'ai d'autres soucis à régler actuellement.
les codes actuel:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 If SFDialogEnregistrer.ShowDialog() = Windows.Forms.DialogResult.OK Then CheminDuFichier = SFDialogEnregistrer.FileName Try 'Dim page As System.IO.StreamWriter 'Instanciation du StreamWriter avec passage du nom du fichier myStreamWriter = New StreamWriter(CheminDuFichier) i = 0 REM code etablissement de declaration myStreamWriter.WriteLine("60002 CR") REM DEFINITION DES EN-TETE DE COLONNES For Each myTable In DataSet.Tables For Each myColumn In myTable.Columns REM export vers fichier Texte des entetes myStreamWriter.Write(myTable.Columns(i).ColumnName & ";") i = i + 1 Next myStreamWriter.WriteLine("; CR") Next j = 2 REM CHARGEMENT DES DONNEES DANS LE FICHIER TEXTE For Each myTable In DataSet.Tables For Each myRow In myTable.Rows 'i = 1 For Each myColumn In myTable.Columns REM export vers fichier Texte des données myStreamWriter.Write(myRow(myColumn) & ";") i += 1 Next myColumn myStreamWriter.WriteLine("; CR") j += 1 Next myRow Next myTable myStreamWriter.WriteLine("" & total & "CR") 'Fermeture du StreamWriter (Trés important) myStreamWriter.Close() MsgBox(" Enregistrement Terminé !", MsgBoxStyle.Information) Catch ex As Exception MessageBox.Show("Catch Select (ExporterVersTexte): " + ex.ToString) End Try End If
- CR :le retour chariot est inseré à la fin de la ligne.
- ; :le point est utilisé coe separateur de champ.
mes soucis :
- j'aimerais insérer des doubles quottes pour encadrer les chaines de caractères
- #####: format pour identifier les montants.
je suis coincée, reste ces deux points pour clôturer le projet. et je suis reconnaissante pour votre aide jusqu'à atteindre ce niveau;
merci.