Hallo zusammen,
ich bin zurzeit dabei ein altes VB6-Programm in VB.NET umzuschreiben, zu verbessern, Features hinzuzufügen, usw.
Nun hänge ich an einer Datei, die in VB6 gespeichert wurde und nun in VB.NET geöffnet und gelesen werden soll. Die ersten und die letzten Zeilen kann ich problemlos auslesen. Zwischendrin habe ich jedoch einen Datensatz, bei dem es mit dem Format mal gar nicht stimmt.
So wird's in VB6 gespeichert:
So sind Meßkoordinaten und Durchmesserwerte definiert:
So sieht ein Datensatz von den Koordinaten aus:
30 200000 200000 100000
31 161140,5 206518 99899,6
32 170700,6 202696,2 99726,9
usw.
So sieht ein Datensatz von den Durchmessern aus:
1993,9 1990,7 6411,5 -5,546 34,852
usw.
Und nun das ganz in VB.NET
So sehen dann die guten, alten Koordinaten aus (Punktnr, x-Wert, y-Wert, z-Wert):
30 3.53278645668721E-310 3.53278645668721E-310 3.52939126342166E-310
31 3.53177986860812E-310 -2.41356463899063E-185 3.52938606204523E-310
-858980320 -2.41355850579437E-185 1.89119455317217E+185 3.52937711505615E-310
-1717960671 4.68038614173845E-62 4.68039675961272E-62 3.52937523965949E-310
Und so die Durchmesser (alles richtig):
1993.9 1990.7 6411.5 -5.54698 34.85271
1986.8 2000.6 6633.2 0 0
1984.5 1971 6499.8 0 0
Wo liegt das Problem? Ich versteh es nicht wirklich . Ich hoffe ihr könnt mir weiterhelfen.
ich bin zurzeit dabei ein altes VB6-Programm in VB.NET umzuschreiben, zu verbessern, Features hinzuzufügen, usw.
Nun hänge ich an einer Datei, die in VB6 gespeichert wurde und nun in VB.NET geöffnet und gelesen werden soll. Die ersten und die letzten Zeilen kann ich problemlos auslesen. Zwischendrin habe ich jedoch einen Datensatz, bei dem es mit dem Format mal gar nicht stimmt.
So wird's in VB6 gespeichert:
Visual Basic-Quellcode
- Dim FileNum As Integer
- Dim N As Integer
- Dim Wert As Meßkoordinaten
- Dim Wert_Durch As Durchmesserwerte
- Private Sub Speichern_Click()
- '...
- MousePointer = 11
- Open Dateiname For Random As FileNum
- Call Save_Berechnung
- Close #FileNum
- MousePointer = 0
- '...
- End Sub
- Private Sub Save_Berechnung()
- Put #FileNum, 1, Dateikennung
- Put #FileNum, 2, Messdatum
- '....
- For i = 1 To Anzahl_Koordinaten_RAM3
- N = N + 1
- Wert.Punkt = Punkt_Nr(i)
- Wert.X_Wert = X_Koordinate(i) 'diese Werte kann ich nicht auslesen
- Wert.Y_Wert = Y_Koordinate(i)
- Wert.Z_Wert = Z_Koordinate(i)
- Put #FileNum, N, Wert
- Next i
- For i = 1 To Anzahl_Stationen
- N = N + 1
- Wert_Durch.Wert1 = Durchmesser_L_R(i) 'diese jedoch schon
- Wert_Durch.Wert2 = Durchmesser_R_R(i)
- Wert_Durch.Wert3 = Durchmesser_LR(i)
- Wert_Durch.Wert4 = Höhenkorrektur(i)
- Wert_Durch.Wert5 = Relativbewegung(i)
- Put #FileNum, N, Wert_Durch
- Next i
- '....
- End Sub
So sind Meßkoordinaten und Durchmesserwerte definiert:
So sieht ein Datensatz von den Koordinaten aus:
30 200000 200000 100000
31 161140,5 206518 99899,6
32 170700,6 202696,2 99726,9
usw.
So sieht ein Datensatz von den Durchmessern aus:
1993,9 1990,7 6411,5 -5,546 34,852
usw.
Und nun das ganz in VB.NET
VB.NET-Quellcode
- Dim Datei As String = Datei_Pfad & "\" & Dateiname
- fileNum = FreeFile()
- FileOpen(fileNum, Datei, OpenMode.Random)
- Call Load_PSC()
- FileClose(fileNum)
- Sub Load_PSC()
- Dim N As Integer
- FileGet(fileNum, Dateikennung, 1)
- FileGet(fileNum, Messdatum, 2)
- For i = 1 To Anzahl_Koordinaten_RAM3
- N = N + 1
- FileGet(fileNum, Wert, N)
- Punkt_Nr(i) = Wert.Punkt
- X_Koordinate(i) = Wert.X_Wert 'diese Werte stimmen nicht
- Y_Koordinate(i) = Wert.Y_Wert
- Z_Koordinate(i) = Wert.Z_Wert
- Next
- For i = 1 To Anzahl_Stationen
- N = N + 1
- FileGet(fileNum, Wert_Durch, N)
- Durchmesser_L_R(i) = Wert_Durch.Wert1 'diese hingegen schon
- Durchmesser_R_R(i) = Wert_Durch.Wert2
- Durchmesser_LR(i) = Wert_Durch.Wert3
- Höhenkorrektur(i) = Wert_Durch.Wert4
- Relativbewegung(i) = Wert_Durch.Wert5
- Next
- '...
- End Sub
So sehen dann die guten, alten Koordinaten aus (Punktnr, x-Wert, y-Wert, z-Wert):
30 3.53278645668721E-310 3.53278645668721E-310 3.52939126342166E-310
31 3.53177986860812E-310 -2.41356463899063E-185 3.52938606204523E-310
-858980320 -2.41355850579437E-185 1.89119455317217E+185 3.52937711505615E-310
-1717960671 4.68038614173845E-62 4.68039675961272E-62 3.52937523965949E-310
Und so die Durchmesser (alles richtig):
1993.9 1990.7 6411.5 -5.54698 34.85271
1986.8 2000.6 6633.2 0 0
1984.5 1971 6499.8 0 0
Wo liegt das Problem? Ich versteh es nicht wirklich . Ich hoffe ihr könnt mir weiterhelfen.