Hallo Zusammen,
als absoluter VB.Net Neuling hab ich folgendes Projekt begonnen:
- Eine Datei mit Koordinaten zur Platinenherstellung einlesen.
- Die Daten bearbeiten
- Die geänderten Daten in einer anderen Datei abspeichern
Grundsätzlich klappte auch alles ganz gut, jedoch erzeugt plötzlich der verwendete savefiledialog keine Datei mehr, was vorher einwandfrei funzte. Auch Rückgängigmachen der letzten Änderungen half leider nicht. Vielleicht kann ja mal ein Profi einen Blick auf meinen Code werfen, ich könnte mir vorstellen, dass ich einiges ausser Acht gelassen habe, was beim handlen von Dateien wichtig ist.
hier ein Ausschnitt des codes, am Anfang wird der savefiledialog aufgerufen, dann erfolgen einige string Operationen, zum Schluss werden die Zeichenfolgen in die Datei geschrieben.
Schonmal vielen Dank
und Gruß
Stefan
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button3.Click
Dim saveFileDialog1 As New SaveFileDialog()
Dim counter, Zeilen, HncCounter As Integer
Dim tempArray(), HncArray(TextBox1.Lines.GetUpperBound(0)), aktZeile, _
HncZeile, _
HncFileNamearray() As String
Dim Xwert, Ywert As Double
Dim Work As Boolean
saveFileDialog1.Filter = "HNC Files|*.hnc"
saveFileDialog1.Title = "Save a HNC File"
Dim result As DialogResult = saveFileDialog1.ShowDialog(Me)
If (result = Windows.Forms.DialogResult.OK) Then
HncFileandPath = saveFileDialog1.FileName
HncFileNamearray = Split(HncFileandPath, "\", -1)
HncFileName = HncFileNamearray(HncFileNamearray.GetUpperBound(0))
HncNumber = Replace(HncFileName, ".hnc", "")
Else : MsgBox("Dateifehler")
End If
tempArray = TextBox1.Lines
Zeilen = tempArray.GetUpperBound(0)
HncCounter = 2
TextBox2.Text = "0 BEGIN PGM " & HncNumber & " MM" & vbCrLf _
& "1 TOOLDEF 1 L+0,000 R+1,000" & vbCrLf _
& "2 TOOLCALL 1 Z S2500" & vbCrLf
For counter = 0 To tempArray.GetUpperBound(0) - 1
aktZeile = tempArray(counter)
Select Case aktZeile(0)
Case "X"
Xwert = Val(Mid(aktZeile, 2, 6))
Xwert = (Int(Xwert * 0.254) + 0.5) / 100
Ywert = Val(Mid(aktZeile, 9, 6))
Ywert = (Int(Ywert * 0.254) + 0.5) / 100
If Mid(aktZeile, 15, 3) = "D01" Then
Work = True
Else : Work = False
End If
HncCounter = HncCounter + 1
HncZeile = LTrim(Str(HncCounter)) & " L X +" & LTrim(Str( _
Xwert)) _
& " Y +" & LTrim(Str(Ywert)) & " R0 F9998 M" & vbCrLf
HncArray(HncCounter) = HncZeile
TextBox2.Text = TextBox2.Text & HncZeile
End Select
Next
HncCounter = HncCounter + 1
HncZeile = LTrim(Str(HncCounter)) & " L Z +50,000 R0 F9998 M30" & vbCrLf
TextBox2.Text = TextBox2.Text & HncZeile
HncCounter = HncCounter + 1
HncZeile = LTrim(Str(HncCounter)) & " END PGM " & HncNumber & " MM"
TextBox2.Text = TextBox2.Text & HncZeile
If My.Computer.FileSystem.FileExists(HncFileandPath) Then
My.Computer.FileSystem.WriteAllText(HncFileandPath, TextBox2.Text, _
True)
End If
End Sub |