un extrait de code qui devrait t'être bien util si tu cherche toujours :
en partant par exemple de la lecture d'un fichier CSV avec N°;X;Y;Z
'FIN de l'écriture de l'entete DXF **********************************************************************
'Création des POINTS ************************************************************************************
Try
' Céer une instance de StreamReader pour lire le fichier.
Dim sr As StreamReader = New StreamReader(fichier)
'Déclaration des variables
Dim don As String
Dim line As String
Dim don1 As String
Dim L1 As Integer
Dim don2 As String
Dim L2 As Integer
Dim don3 As String
Dim L3 As Integer
Dim don4 As String
Dim L4 As Integer
Dim sep As String
sep = ","
Dim Ligne1 As Integer
Ligne1 = 0
Dim rot As Double
rot = Val(rotext.Text)
Dim dec As Double
Dim TAILLE As Double
TAILLE = Val(TextBoxEchelle.Text) / 625
dec = Val(TextBoxEchelle.Text) / 1000
TextBoxDEC.Text = dec
Dim TAIL As String = Strings.Replace(TextBoxTAILLE.Text, ",", ".")
Dim Angle As String = Strings.Replace(rotext.Text, ",", ".")
Dim Xdec As String
Dim Ydec As String
Dim Xdec1 As String
Dim Ydec1 As String
If CheckBoxvirgule.CheckState = 1 Then
sep = ","
End If
If CheckBoxpointvirgule.CheckState = 1 Then
sep = ";"
End If
If CheckBoxespace.CheckState = 1 Then
sep = " "
End If
If CheckBoxligne1.CheckState = 1 Then
Ligne1 = 1
End If
'Fabrication des POINTS et calcul MAXI MINI Nombre de points -----------------------------------------------------------
Me.ProgressBar1.Value = 10 'Gestion de la barre de progression
TextBoxZMAX.Text = -999999999999999
TextBoxZMIN.Text = 999999999999999
Do
line = sr.ReadLine()
L1 = Strings.InStr(line, sep, CompareMethod.Text)
don1 = Strings.Left(line, L1 - 1)
Me.ListBox3.Items.Add(don1)
'-----------------------------------------------------------
don = Strings.Right(line, Strings.Len(line) - L1)
L2 = Strings.InStr(don, sep, CompareMethod.Text)
don2 = Strings.Left(don, L2 - 1)
don2 = Strings.Replace(don2, ",", ".")
Me.ListBox4.Items.Add(don2)
'-----------------------------------------------------------
don = Strings.Right(don, Strings.Len(don) - L2)
L3 = Strings.InStr(don, sep, CompareMethod.Text)
don3 = Strings.Left(don, L3 - 1)
don3 = Strings.Replace(don3, ",", ".")
Me.ListBox5.Items.Add(don3)
'-----------------------------------------------------------
L4 = Strings.InStr(don, sep, CompareMethod.Text)
L4 = Strings.Len(line) - L1 - L2 - L3
don4 = Strings.Right(line, L4)
don4 = Strings.Replace(don4, ",", ".")
Me.ListBox6.Items.Add(don4)
'écriture du DXF ******************************************************************************************
If Ligne1 = 1 Then
'écriture des points dans le layer
PrintLine(1, "0") ' ********écriture dans le fichier de sortie
PrintLine(1, "POINT") ' ********écriture dans le fichier de sortie
PrintLine(1, "8") ' ********écriture dans le fichier de sortie
PrintLine(1, "Points") ' ********écriture dans le fichier de sortie
PrintLine(1, "62") ' ********écriture dans le fichier de sortie
PrintLine(1, "9") ' ********écriture dans le fichier de sortie
PrintLine(1, "10") ' ********écriture dans le fichier de sortie
PrintLine(1, don2) ' ********écriture dans le fichier de sortie
PrintLine(1, "20") ' ********écriture dans le fichier de sortie
PrintLine(1, don3) ' ********écriture dans le fichier de sortie
If CheckBoxP3D.Checked = True Then PrintLine(1, "30") 'En 3D
If CheckBoxP3D.Checked = True Then PrintLine(1, don4) 'En 3D
Me.ProgressBar1.Value = 30 'Gestion de la barre de progression
'écriture des numérots dans le layer
'Calcul des X et Y décalé ----------------------------------
Xdec = Strings.Replace(Format(XYGDX(Val(don2), Val(don3), Val(Angle), Val(dec))), ",", ".")
Ydec = Strings.Replace(Format(XYGDY(Val(don2), Val(don3), Val(Angle), Val(dec))), ",", ".")
PrintLine(1, "0") ' ********écriture dans le fichier de sortie
PrintLine(1, "TEXT") ' ********écriture dans le fichier de sortie
PrintLine(1, "8") ' ********écriture dans le fichier de sortie
PrintLine(1, "Points_NUMEROS") ' ********écriture dans le fichier de sortie
PrintLine(1, "62") ' ********écriture dans le fichier de sortie
PrintLine(1, "1") ' ********écriture dans le fichier de sortie
PrintLine(1, "10") ' ********écriture dans le fichier de sortie
PrintLine(1, Xdec) ' ********écriture dans le fichier de sortie
PrintLine(1, "20") ' ********écriture dans le fichier de sortie
PrintLine(1, Ydec) ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, "30") ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, don4) ' ********écriture dans le fichier de sortie
PrintLine(1, "40") ' ********écriture dans le fichier de sortie
PrintLine(1, TAIL) ' ********écriture dans le fichier de sortie
PrintLine(1, "41") ' ********écriture dans le fichier de sortie
PrintLine(1, "0.5") ' ********écriture dans le fichier de sortie
PrintLine(1, "1") ' ********écriture dans le fichier de sortie
PrintLine(1, don1) ' ********écriture dans le fichier de sortie
PrintLine(1, "50") ' ********écriture dans le fichier de sortie rotext
PrintLine(1, 180 - rot) ' ********écriture dans le fichier de sortie
'PrintLine(1, "7") ' ********écriture dans le fichier de sortie
'PrintLine(1, "STANDARD") ' ********écriture dans le fichier de sortie
Me.ProgressBar1.Value = 30 'Gestion de la barre de progression
'écriture des niveaux dans le layer
Xdec = Strings.Replace(Format(XYGDX(Val(don2), Val(don3), Val(Angle), -Val(dec))), ",", ".")
Ydec = Strings.Replace(Format(XYGDY(Val(don2), Val(don3), Val(Angle), -Val(dec))), ",", ".")
PrintLine(1, "0") ' ********écriture dans le fichier de sortie
PrintLine(1, "TEXT") ' ********écriture dans le fichier de sortie
PrintLine(1, "8") ' ********écriture dans le fichier de sortie
PrintLine(1, "Points_NIVEAUX") ' ********écriture dans le fichier de sortie
PrintLine(1, "62") ' ********écriture dans le fichier de sortie
PrintLine(1, "9") ' ********écriture dans le fichier de sortie
PrintLine(1, "10") ' ********écriture dans le fichier de sortie
PrintLine(1, Xdec) ' ********écriture dans le fichier de sortie
PrintLine(1, "20") ' ********écriture dans le fichier de sortie
PrintLine(1, Ydec) ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, "30") ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, don4) ' ********écriture dans le fichier de sortie
PrintLine(1, "40") ' ********écriture dans le fichier de sortie
PrintLine(1, TAIL) ' ********écriture dans le fichier de sortie
PrintLine(1, "41") ' ********écriture dans le fichier de sortie
PrintLine(1, "0.5") ' ********écriture dans le fichier de sortie
PrintLine(1, "1") ' ********écriture dans le fichier de sortie
PrintLine(1, don4) ' ********écriture dans le fichier de sortie
PrintLine(1, "50") ' ********écriture dans le fichier de sortie rotext
PrintLine(1, 90 - rot) ' ********écriture dans le fichier de sortie
'PrintLine(1, "7") ' ********écriture dans le fichier de sortie
'PrintLine(1, "STANDARD") ' ********écriture dans le fichier de sortie
Me.ProgressBar1.Value = 40 'Gestion de la barre de progression
'écriture des X dans le layer
Xdec1 = Strings.Replace(Format(XYGDX(Val(don2), Val(don3), Val(Angle), -Val(dec))), ",", ".")
Ydec1 = Strings.Replace(Format(XYGDY(Val(don2), Val(don3), Val(Angle), -Val(dec))), ",", ".")
Xdec = Strings.Replace(Format(XYGDX(Val(Xdec1), Val(Ydec1), Val(Angle + 90), -(Val(dec) + Val(TAILLE)))), ",", ".")
Ydec = Strings.Replace(Format(XYGDY(Val(Xdec1), Val(Ydec1), Val(Angle + 90), -(Val(dec) + Val(TAILLE)))), ",", ".")
PrintLine(1, "0") ' ********écriture dans le fichier de sortie
PrintLine(1, "TEXT") ' ********écriture dans le fichier de sortie
PrintLine(1, "8") ' ********écriture dans le fichier de sortie
PrintLine(1, "Points_X_Y") ' ********écriture dans le fichier de sortie
PrintLine(1, "62") ' ********écriture dans le fichier de sortie
PrintLine(1, "6") ' ********écriture dans le fichier de sortie
PrintLine(1, "10") ' ********écriture dans le fichier de sortie
PrintLine(1, Xdec) ' ********écriture dans le fichier de sortie
PrintLine(1, "20") ' ********écriture dans le fichier de sortie
PrintLine(1, Ydec) ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, "30") ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, don4) ' ********écriture dans le fichier de sortie
PrintLine(1, "40") ' ********écriture dans le fichier de sortie
PrintLine(1, TAIL) ' ********écriture dans le fichier de sortie
PrintLine(1, "41") ' ********écriture dans le fichier de sortie
PrintLine(1, "0.5") ' ********écriture dans le fichier de sortie
PrintLine(1, "1") ' ********écriture dans le fichier de sortie
'PrintLine(1, don2) ' ********écriture dans le fichier de sortie
PrintLine(1, String.Concat("X : ", don2)) ' ********écriture dans le fichier de sortie
PrintLine(1, "50") ' ********écriture dans le fichier de sortie rotext
PrintLine(1, 90 - rot) ' ********écriture dans le fichier de sortie
Me.ProgressBar1.Value = 50 'Gestion de la barre de progression
'écriture des Y dans le layer
Xdec1 = Strings.Replace(Format(XYGDX(Val(don2), Val(don3), Val(Angle), -Val(dec))), ",", ".")
Ydec1 = Strings.Replace(Format(XYGDY(Val(don2), Val(don3), Val(Angle), -Val(dec))), ",", ".")
Xdec = Strings.Replace(Format(XYGDX(Val(Xdec1), Val(Ydec1), Val(Angle + 90), -(Val(dec) + Val(TAILLE)) * 2)), ",", ".")
Ydec = Strings.Replace(Format(XYGDY(Val(Xdec1), Val(Ydec1), Val(Angle + 90), -(Val(dec) + Val(TAILLE)) * 2)), ",", ".")
PrintLine(1, "0") ' ********écriture dans le fichier de sortie
PrintLine(1, "TEXT") ' ********écriture dans le fichier de sortie
PrintLine(1, "8") ' ********écriture dans le fichier de sortie
PrintLine(1, "Points_X_Y") ' ********écriture dans le fichier de sortie
PrintLine(1, "62") ' ********écriture dans le fichier de sortie
PrintLine(1, "6") ' ********écriture dans le fichier de sortie
PrintLine(1, "10") ' ********écriture dans le fichier de sortie
PrintLine(1, Xdec) ' ********écriture dans le fichier de sortie
PrintLine(1, "20") ' ********écriture dans le fichier de sortie
PrintLine(1, Ydec) ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, "30") ' ********écriture dans le fichier de sortie
If CheckBoxT3D.Checked = True Then PrintLine(1, don4) ' ********écriture dans le fichier de sortie
PrintLine(1, "40") ' ********écriture dans le fichier de sortie
PrintLine(1, TAIL) ' ********écriture dans le fichier de sortie
PrintLine(1, "41") ' ********écriture dans le fichier de sortie
PrintLine(1, "0.5") ' ********écriture dans le fichier de sortie
PrintLine(1, "1") ' ********écriture dans le fichier de sortie
'PrintLine(1, don3) ' ********écriture dans le fichier de sortie
PrintLine(1, String.Concat("Y : ", don3)) ' ********écriture dans le fichier de sortie
PrintLine(1, "50") ' ********écriture dans le fichier de sortie rotext
PrintLine(1, 90 - rot) ' ********écriture dans le fichier de sortie
Me.ProgressBar1.Value = 60 'Gestion de la barre de progression
End If
'Calcul maxi mini des Z ----------------------
If Val(don4) < Val(TextBoxZMIN.Text) And Val(don4) / Val(don4) = 1 Then
TextBoxZMIN.Text = don4
End If
If Val(don4) > Val(TextBoxZMAX.Text) And Val(don4) / Val(don4) = 1 Then
TextBoxZMAX.Text = don4
End If
'-----------------------------------------------------------
If Ligne1 = 0 Then
Ligne1 = 1
End If
Loop Until line Is Nothing
sr.Close()
Catch mes As Exception
End Try
'Fin de la Création des POINTS et calcul MAXI MINI Nombre de points **************************************
Me.ProgressBar1.Value = 70 'Gestion de la barre de progression
'Création de la POLYLIGNE *****************************************************************************************
If (CheckBoxPoly2D.Checked True Or CheckBoxPoly3D.Checked True) Then
Try
' Céer une instance de StreamReader pour lire le fichier.
Dim sr As StreamReader = New StreamReader(fichier)
'Déclaration des variables
Dim don As String
Dim line As String
Dim don1 As String
Dim L1 As Integer
Dim don2 As String
Dim L2 As Integer
Dim don3 As String
Dim L3 As Integer
Dim don4 As String
Dim L4 As Integer
Dim sep As String
sep = ","
Dim Ligne1 As Integer
Ligne1 = 0
Dim NP As Integer
NP = 1
'NP = Val(TextBoxNP.Text) * 10
If CheckBoxvirgule.CheckState = 1 Then
sep = ","
End If
If CheckBoxpointvirgule.CheckState = 1 Then
sep = ";"
End If
If CheckBoxespace.CheckState = 1 Then
sep = " "
End If
If CheckBoxligne1.CheckState = 1 Then
Ligne1 = 1
End If
'Fabrication des 3D Polignes ----------------------------------------------------------
'écriture du début de laq polyligne ---------------------------------------------------
PrintLine(1, "0") ' //////////écriture dans le fichier de sortie
PrintLine(1, "POLYLINE") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 5") ' //////////écriture dans le fichier de sortie
PrintLine(1, "EF") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 8") ' //////////écriture dans le fichier de sortie
PrintLine(1, "Points_POLY3D") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 66") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 1") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 62") ' //////////écriture dans le fichier de sortie
PrintLine(1, "5") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 10") ' //////////écriture dans le fichier de sortie
PrintLine(1, "0.0") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 20") ' //////////écriture dans le fichier de sortie
PrintLine(1, "0.0") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 30") ' //////////écriture dans le fichier de sortie
PrintLine(1, "0.0") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 70") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 8") ' //////////écriture dans le fichier de sortie
Do
line = sr.ReadLine()
L1 = Strings.InStr(line, sep, CompareMethod.Text)
don1 = Strings.Left(line, L1 - 1)
Me.ListBox3.Items.Add(don1)
'-----------------------------------------------------------
don = Strings.Right(line, Strings.Len(line) - L1)
L2 = Strings.InStr(don, sep, CompareMethod.Text)
don2 = Strings.Left(don, L2 - 1)
don2 = Strings.Replace(don2, ",", ".")
Me.ListBox4.Items.Add(don2)
'-----------------------------------------------------------
don = Strings.Right(don, Strings.Len(don) - L2)
L3 = Strings.InStr(don, sep, CompareMethod.Text)
don3 = Strings.Left(don, L3 - 1)
don3 = Strings.Replace(don3, ",", ".")
Me.ListBox5.Items.Add(don3)
'-----------------------------------------------------------
L4 = Strings.InStr(don, sep, CompareMethod.Text)
L4 = Strings.Len(line) - L1 - L2 - L3
don4 = Strings.Right(line, L4)
don4 = Strings.Replace(don4, ",", ".")
Me.ListBox6.Items.Add(don4)
'écriture du SCR -------------------------------------------
If CheckBoxP3D.CheckState = CheckState.Unchecked Then
don4 = "0"
End If
If Ligne1 = 1 Then
'écriture des sommets de la polyligne --------------------------------------------------------
PrintLine(1, "0") ' //////////écriture dans le fichier de sortie
PrintLine(1, "VERTEX") ' //////////écriture dans le fichier de sortie
PrintLine(1, "5") ' //////////écriture dans le fichier de sortie
PrintLine(1, "F" & NP) ' //////////écriture dans le fichier de sortie
PrintLine(1, "8") ' //////////écriture dans le fichier de sortie
PrintLine(1, "Points_POLY3D") ' //////////écriture dans le fichier de sortie
PrintLine(1, " 10") ' //////////écriture dans le fichier de sortie
PrintLine(1, don2) ' //////////écriture dans le fichier de sortie
PrintLine(1, " 20") ' //////////écriture dans le fichier de sortie
PrintLine(1, don3) ' //////////écriture dans le fichier de sortie
If CheckBoxPoly3D.Checked = True Then PrintLine(1, " 30") ' ********écriture dans le fichier de sortie
If CheckBoxPoly3D.Checked = True Then PrintLine(1, don4) ' ********écriture dans le fichier de sortie
If CheckBoxPoly2D.Checked = True Then PrintLine(1, " 30") ' ********écriture dans le fichier de sortie
If CheckBoxPoly2D.Checked = True Then PrintLine(1, 0) ' ********écriture dans le fichier de sortie
PrintLine(1, " 70") ' //////////écriture dans le fichier de sortie
PrintLine(1, "32") ' //////////écriture dans le fichier de sortie
End If
If Ligne1 = 0 Then
Ligne1 = 1
End If
NP = NP + 1
TextBox3.Text = NP
Loop Until line Is Nothing
sr.Close()
Catch mes As Exception
End Try
End If
'écriture de la fin de la polyligne --------------------------------------------------
If (CheckBoxPoly2D.Checked True Or CheckBoxPoly3D.Checked True) Then
PrintLine(1, "0") ' //////////écriture dans le fichier de sortie
PrintLine(1, "SEQEND") ' //////////écriture dans le fichier de sortie
PrintLine(1, "5") ' //////////écriture dans le fichier de sortie
PrintLine(1, "F" & Val(TextBox3.Text)) ' //////////écriture dans le fichier de sortie
PrintLine(1, "8") ' //////////écriture dans le fichier de sortie
PrintLine(1, "Points_POLY3D") ' //////////écriture dans le fichier de sortie
End If
' fin de la Création de POLYLIGNE ******************************************************************************
'écriture de la fin du fichier du DXF (EOF)-------------------------------------------
PrintLine(1, "0") ' //////////écriture dans le fichier de sortie
PrintLine(1, "ENDSEC") ' //////////écriture dans le fichier de sortie
PrintLine(1, "0") ' //////////écriture dans le fichier de sortie
PrintLine(1, "EOF") ' //////////écriture dans le fichier de sortie
FileClose(1) ' Fermeture du fichier de sortie
'Affichage du fichier DXF -------------------------------------------------------------
RichTextBox2.LoadFile(DXF, RichTextBoxStreamType.PlainText)
End If
Me.ProgressBar1.Value = 100 'Gestion de la barre de progression
'affichage message de fin ------------------------------------------------------------------
MessageBox.Show("Aller dans Autocad / Fichier / Ouvrir / Choisir type DXF /et allez chercher votre fichier *.DXF ......... ;-) Richard TOUBIN", "C'est fini", MessageBoxButtons.OK, MessageBoxIcon.None)
Me.ProgressBar1.Visible = False 'Gestion de la barre de progression
End Sub