Punktkoordinaten berechnen & log Datei erstellen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Punktkoordinaten berechnen & log Datei erstellen

    Hallo ich verzweifle schon 2 Tage an einem Problem!
    Folgendes Programm:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Module Module1
    3. Dim Ausgang(2, 5) As Decimal
    4. Dim XYZGrundwerte(5), Inst_Grundwerte(4), Winkel_Grundwerte(1, 4), Eingabewerte(3), Rechenwerte(100, 6) As Decimal
    5. Dim Ausgabename, Ausgabeverzeichnis, Ausgabezeilen, Eingabepfad, Eingabezeilen As String
    6. Dim Zähler, Anzahl_Festpkt, Anzahl_Mess, Anzahl_Stpkt, Anzahl_Neupkt As Short
    7. Dim S0, S1, S2, S3, S4 As Boolean
    8. Dim SW, Ausgabe As IO.StreamWriter
    9. Dim SR As IO.StreamReader
    10. Dim SortWerte As New SortedList(Of Gleichsetzen, Double)
    11. Sub Main()
    12. Einlesen()
    13. Dim NeuBerechnung As Punkt = New Punkt(Ausgang(0, 4), Ausgang(0, 3), XYZGrundwerte(5), Eingabewerte(3), Inst_Grundwerte(3), _
    14. Inst_Grundwerte(4), Ausgang(1, 3), Ausgang(1, 4), Winkel_Grundwerte(1, 3))
    15. Dim BerechneteWerte(100, 5), RiWi, WerteNeu() As Decimal
    16. Console.WriteLine("Bitte geben Sie einen Namen für die Ausgabedatei ein")
    17. Ausgabename = Console.ReadLine
    18. If Ausgabename = "" Then
    19. Ausgabename = Eingabepfad
    20. Else
    21. Ausgabename = Ausgabename
    22. Console.WriteLine("Bitte geben Sie das Verzeichnis an in dem die Ausgabedatei erzeugt werden soll!")
    23. Ausgabeverzeichnis = Console.ReadLine
    24. End If
    25. Ausgabedatei(" Punktnummer Ebene|Punktart Rechtswert (Y) Hochwert (X) Höhe (z) ")
    26. For i As Integer = 0 To Rechenwerte.GetUpperBound(0)
    27. If Rechenwerte(i, 0) = Nothing Then Exit For
    28. RiWi = NeuBerechnung.Richtungswinkel
    29. WerteNeu = NeuBerechnung.Polar(RiWi, Rechenwerte(i, 3))
    30. BerechneteWerte(i, 0) = i
    31. BerechneteWerte(i, 1) = Rechenwerte(i, 1)
    32. BerechneteWerte(i, 2) = Rechenwerte(i, 2)
    33. BerechneteWerte(i, 3) = WerteNeu(0)
    34. BerechneteWerte(i, 4) = WerteNeu(1)
    35. BerechneteWerte(i, 5) = NeuBerechnung.Hoehe(Rechenwerte(i, 2), Rechenwerte(i, 4))
    36. Anzahl_Neupkt += 1
    37. Ausgabezeilen = (" ") & BerechneteWerte(i, 1).ToString("0000.0000") & _
    38. (" ") & BerechneteWerte(i, 2).ToString("00") & _
    39. (" ") & BerechneteWerte(i, 3).ToString("0000000.000") & _
    40. (" ") & BerechneteWerte(i, 4).ToString("0000000.000") & _
    41. (" ") & BerechneteWerte(i, 5).ToString("000.000")
    42. Ausgabezeilen = Ausgabezeilen.Replace(",", ".")
    43. Ausgabedatei(Ausgabezeilen)
    44. Next
    45. Protokol("Anzahl der eingelesenen Festpunkte: " & Anzahl_Festpkt)
    46. Protokol("Anzahl der eingelesenen Standpunkte: " & Anzahl_Stpkt)
    47. Protokol("Anzahl der eingelesenen Messwerte: " & Anzahl_Mess)
    48. Protokol("Anzahl der berechneten Neupunkte: " & Anzahl_Neupkt)
    49. For j As Integer = 0 To BerechneteWerte.GetUpperBound(0)
    50. If BerechneteWerte(j, 1) = Nothing Then Exit For
    51. SortWerte.Add(New Gleichsetzen(BerechneteWerte(j, 1)), BerechneteWerte(j, 2))
    52. Next
    53. For Each WertePaar As KeyValuePair(Of Gleichsetzen, Double) In SortWerte
    54. Console.WriteLine("{0} {1}", WertePaar.Key.PktNr, WertePaar.Value)
    55. Next
    56. Console.WriteLine()
    57. Console.WriteLine(">>>ENTER")
    58. Console.ReadLine()
    59. End Sub
    60. Sub Einlesen()
    61. Dim Existiert As Boolean = False
    62. Do
    63. Console.WriteLine("Bitte den Dateipfad eingeben")
    64. Console.WriteLine()
    65. Eingabepfad = Console.ReadLine()
    66. Try
    67. SR = New IO.StreamReader(Eingabepfad)
    68. Existiert = True
    69. Catch ex As Exception
    70. Console.WriteLine("Fehler! Die Datei gibt es nicht oder der Pfad wurde falsch angegeben.")
    71. Console.WriteLine("Bitte Dateipfad erneut eingeben")
    72. Console.WriteLine(ex.Message)
    73. Console.WriteLine()
    74. End Try
    75. Loop Until Existiert
    76. Protokol("Projektarbeit Programmieren SS12")
    77. Protokol("Tanja Maurer. Der aktuelle Benutzer ist: " & Environment.UserName)
    78. Protokol("Pfad der Eingabedatei:" & Eingabepfad)
    79. Protokol("Datum: " & Now.ToLongDateString & " Uhrzeit: " & Now.ToLongTimeString)
    80. Do While SR.Peek() >= 0
    81. If S0 = True Then Grundfaktor(Eingabezeilen)
    82. If S1 = True Then Grundwert(Eingabezeilen)
    83. If S2 = True Then Eingabe(Eingabezeilen)
    84. If S3 = True Then Rechnung(Eingabezeilen)
    85. If Zähler = 64 Then
    86. Exit Do
    87. End If
    88. Eingabezeilen = SR.ReadLine
    89. If Eingabezeilen.Contains("KOORDINATEN") And Not Eingabezeilen.Contains("POLARPUNKTE") Then
    90. S0 = True
    91. End If
    92. If Eingabezeilen.Contains("STAT. AUF BEK. PKT.") Then
    93. S1 = True
    94. S0 = False
    95. Zähler = 0
    96. End If
    97. If Eingabezeilen.Contains("EINGABEWERTE") Then
    98. S2 = True
    99. S1 = False
    100. S0 = False
    101. End If
    102. If Eingabezeilen.Contains("POLARPUNKTE") Then
    103. S3 = True
    104. S2 = False
    105. S1 = False
    106. If Rechenwerte(0, 0) = Nothing Then Zähler = 0
    107. End If
    108. Loop
    109. SR.Close()
    110. End Sub
    111. Public Sub Protokol(ByVal Text As String)
    112. SW = New IO.StreamWriter(Eingabepfad.Replace(".rec", ".log.txt"), True)
    113. SW.WriteLine(Text)
    114. SW.Close()
    115. End Sub
    116. Sub Ausgabedatei(ByVal Ausgabezeilen As String)
    117. Try
    118. If Ausgabename = Eingabepfad Then
    119. Ausgabe = New StreamWriter(Ausgabename.Replace(".rec", ".out.txt"), True)
    120. Else
    121. Ausgabe = New StreamWriter(Ausgabeverzeichnis & "\" & Ausgabename & ".out" & ".txt", True)
    122. End If
    123. Ausgabe.WriteLine(Ausgabezeilen)
    124. Ausgabe.Close()
    125. Catch ex As Exception
    126. Console.WriteLine("Fehler beim Erzeugen der Datei")
    127. End Try
    128. End Sub
    129. Private Sub Grundfaktor(ByVal Zeile As String)
    130. Dim Nummer As Integer
    131. Try
    132. If Zeile.Contains("KOORDINATEN") Then Exit Sub
    133. Zeile = Zeile.Replace(".", ",")
    134. Nummer = CInt(Zeile.Substring(0, 5))
    135. Dim Punktwert1 As Double = CDec(Zeile.Substring(7, 13))
    136. Dim Punktart As Double = CDec(Zeile.Substring(20, 2))
    137. Dim Y As Double = CDec(Zeile.Substring(36, 12))
    138. Dim X As Double = CDec(Zeile.Substring(53, 12))
    139. Dim Z = CDec(Zeile.Substring(66, 10))
    140. Ausgang(Zähler, 0) = Nummer
    141. Ausgang(Zähler, 1) = Punktwert1
    142. Ausgang(Zähler, 2) = Punktart
    143. Ausgang(Zähler, 3) = Y
    144. Ausgang(Zähler, 4) = X
    145. Ausgang(Zähler, 5) = Z
    146. Zähler += 1
    147. Anzahl_Festpkt += 1
    148. Anzahl_Mess += 3
    149. Catch ex As Exception
    150. Protokol("In der Zeile " & Nummer & " ist ein Fehler: " & ex.Message)
    151. End Try
    152. End Sub
    153. Private Sub Grundwert(ByVal Zeile As String)
    154. Dim Nummer As Integer
    155. Try
    156. If Zeile.Contains("STAT. AUF BEK. PKT.") Then Exit Sub
    157. Zeile = Zeile.Replace(".", ",")
    158. If Zeile.Contains("X") And Zeile.Contains("Y") And Zeile.Contains("Z") Then
    159. Nummer = CInt(Zeile.Substring(0, 5))
    160. XYZGrundwerte(0) = Nummer
    161. XYZGrundwerte(1) = CDec(Zeile.Substring(7, 13))
    162. XYZGrundwerte(2) = CDec(Zeile.Substring(20, 2))
    163. XYZGrundwerte(3) = CDec(Zeile.Substring(36, 12))
    164. XYZGrundwerte(4) = CDec(Zeile.Substring(53, 12))
    165. XYZGrundwerte(5) = CDec(Zeile.Substring(66, 10))
    166. Anzahl_Mess += 3
    167. Exit Sub
    168. End If
    169. If Zeile.Contains("m") Or Zeile.Contains("ih") Then
    170. Nummer = CInt(Zeile.Substring(0, 5))
    171. Inst_Grundwerte(0) = Nummer
    172. Inst_Grundwerte(1) = CDec(Zeile.Substring(7, 12))
    173. Inst_Grundwerte(2) = CDec(Zeile.Substring(20, 2))
    174. Inst_Grundwerte(3) = CDec(Zeile.Substring(36, 12))
    175. Inst_Grundwerte(4) = CDec(Zeile.Substring(53, 7))
    176. Anzahl_Mess += 2
    177. Exit Sub
    178. End If
    179. If Zeile.Contains("Hz") And Zeile.Contains("V1") Then
    180. Nummer = CInt(Zeile.Substring(0, 5))
    181. Winkel_Grundwerte(Zähler, 0) = Nummer
    182. Winkel_Grundwerte(Zähler, 1) = CDec(Zeile.Substring(7, 13))
    183. Winkel_Grundwerte(Zähler, 2) = CDec(Zeile.Substring(20, 2))
    184. Winkel_Grundwerte(Zähler, 3) = CDec(Zeile.Substring(53, 12))
    185. Winkel_Grundwerte(Zähler, 4) = CDec(Zeile.Substring(68, 8))
    186. Zähler += 1
    187. Anzahl_Mess += 2
    188. End If
    189. Catch ex As Exception
    190. Protokol("In der Zeile " & Nummer & " ist ein Fehler: " & ex.Message)
    191. End Try
    192. End Sub
    193. Private Sub Eingabe(ByVal Zeile As String)
    194. Dim Nummer As Integer
    195. Try
    196. If Zeile.Contains("EINGABEWERTE") Then
    197. Zeile = Zeile.Replace(".", ",")
    198. Nummer = CInt(Zeile.Substring(0, 5))
    199. Eingabewerte(0) = Nummer
    200. Eingabewerte(1) = CDec(Zeile.Substring(36, 12))
    201. Eingabewerte(2) = CDec(Zeile.Substring(53, 12))
    202. Eingabewerte(3) = CDec(Zeile.Substring(68, 8))
    203. Anzahl_Mess += 3
    204. End If
    205. Catch ex As Exception
    206. Protokol("In der Zeile " & Nummer & " ist ein Fehler: " & ex.Message)
    207. End Try
    208. End Sub
    209. Private Sub Rechnung(ByVal Zeile As String)
    210. Dim Nummer As Integer
    211. Try
    212. If Zeile.Contains("KOORDINATEN/POLARPUNKTE") Then Exit Sub
    213. Zeile = Zeile.Replace(".", ",")
    214. Zeile = CInt(Zeile.Substring(0, 5))
    215. Rechenwerte(Zähler, 0) = Nummer
    216. Rechenwerte(Zähler, 1) = CDec(Zeile.Substring(7, 13))
    217. Rechenwerte(Zähler, 2) = CDec(Zeile.Substring(20, 2))
    218. Rechenwerte(Zähler, 3) = CDec(Zeile.Substring(36, 12))
    219. Rechenwerte(Zähler, 4) = CDec(Zeile.Substring(53, 12))
    220. Rechenwerte(Zähler, 5) = CDec(Zeile.Substring(68, 8))
    221. Zähler += 1
    222. Anzahl_Mess += 3
    223. Anzahl_Stpkt += 1
    224. Catch ex As Exception
    225. Protokol("In der Zeile " & Nummer & " ist ein Fehler: " & ex.Message)
    226. End Try
    227. End Sub
    228. End Module


    dazu eine Klasse Punkt:

    VB.NET-Quellcode

    1. Public Class Punkt
    2. Dim meinPunkt As Decimal
    3. Dim meinR, meinH, meinH2, meinR2 As Decimal
    4. Dim meineHoehe, meineHoeheInstr, meineZielhoehe As Decimal
    5. Dim meinHorizont, meinMaßstab As Decimal
    6. Public ReadOnly Property Punkt() As String
    7. Get
    8. Return meinPunkt
    9. End Get
    10. End Property
    11. Public Sub New(ByVal X As Decimal, ByVal Y As Decimal, ByVal Z As Decimal, ByVal th As Decimal, ByVal m As Decimal, ByVal ih As Decimal, ByVal Y2 As Decimal, ByVal X2 As Decimal, ByVal Hz As Decimal)
    12. meinR = X
    13. meinH = Y
    14. meinH2 = Y2
    15. meinR2 = X2
    16. meineHoehe = Z
    17. meineHoeheInstr = ih
    18. meineZielhoehe = th
    19. meinHorizont = Hz
    20. meinMaßstab = m
    21. End Sub
    22. Public Function Hoehe(ByVal D As Decimal, ByVal V1 As Decimal) As Decimal
    23. Dim NeueHoehe As Decimal
    24. If D > 250 Then
    25. NeueHoehe = meineHoehe + meineHoeheInstr + D * Math.Cos(V1) - meineZielhoehe
    26. Else
    27. NeueHoehe = meineHoehe + meineHoeheInstr + D * Math.Cos(V1) + (D ^ 2 / (2 * 6380000)) * 0.87 - meineZielhoehe
    28. End If
    29. Return NeueHoehe
    30. End Function
    31. Public Function Richtungswinkel()
    32. Dim yp, xp, t As Decimal
    33. xp = meinR2 - meinR
    34. yp = meinH2 - meinH
    35. If Math.Abs(yp) = 0 And Math.Abs(xp) = 0 Then
    36. Return -1
    37. End If
    38. If Math.Abs(xp) = 0 Then
    39. If yp < 0 Then Return 300
    40. If yp > 0 Then Return 100
    41. End If
    42. t = Math.Atan(yp / xp)
    43. If xp < 0 Then
    44. t += 200
    45. End If
    46. If t < 0 Then
    47. t += 400
    48. End If
    49. Return t
    50. End Function
    51. Public Function Polar(ByVal t As Decimal, ByVal Hz As Decimal) As Decimal()
    52. Dim Werte(1) As Decimal
    53. Dim c, b As Decimal
    54. c = Math.Sqrt((meinR2 - meinR) ^ 2 + (meinH2 - meinH) ^ 2)
    55. b = c * (Math.Sin(meinHorizont) / Math.Sin(Hz + meinHorizont))
    56. Werte(0) = meinH + b * Math.Sin(t)
    57. Werte(1) = meinR + b * Math.Cos(t)
    58. Return Werte
    59. End Function
    60. End Class


    und eine Klasse Gleichsetzen:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Collections
    3. Public Class Gleichsetzen
    4. Implements IComparable(Of Gleichsetzen)
    5. Protected myValue As Decimal = 0.0
    6. Public Sub New(ByVal Punktnummer As Decimal)
    7. Me.PktNr = Punktnummer
    8. End Sub
    9. Public Property PktNr As Decimal
    10. Get
    11. Return myValue
    12. End Get
    13. Set(ByVal value As Decimal)
    14. myValue = value
    15. End Set
    16. End Property
    17. Public Overloads Function CompareTo(ByVal PunktN As Gleichsetzen) As Integer Implements System.IComparable(Of Gleichsetzen).CompareTo
    18. Return myValue.CompareTo(PunktN.myValue)
    19. End Function
    20. End Class

    Das Programm soll mir die Koordinaten der Punkte aus einer externen Messdatei auslesen, die (in Auszügen) so aussieht:
    1 KOORDINATEN/
    2 301.1001 05 Y 3536737.746 X 5455937.909 Z 310.630
    3 201.1003 05 Y 3536738.881 X 5456410.283 Z 322.356
    4 6723.0107 03 Y 3536900.790 X 5455318.840 Z 301.150
    5 STAT. AUF BEK. PKT./
    6 301.1001 05 Y 3536737.746 X 5455937.909 Z 310.630
    7 301.1001 05 m 1.000000 ih 1.480
    8 6723.0107 03 Hz 44.4121 V1 100.9295
    9 201.1003 05 Hz 260.9572 V1 98.4046
    10 KOORDINATEN/POLARPUNKTE/
    11 3.1001 74 D 49.172 Hz 276.8334 V1 102.2361
    12 EINGABEWERTE m 1.000000 th 1.500 ih 1.480
    13 KOORDINATEN/POLARPUNKTE/
    14 3.1002 74 D 61.310 Hz 317.9288 V1 104.5838
    15 3.1003 74 D 58.789 Hz 319.4395 V1 104.8252
    16 3.1004 74 D 71.561 Hz 333.9190 V1 105.8891
    17 3.1005 74 D 73.404 Hz 332.0761 V1 105.8218
    18 3.1006 74 D 87.680 Hz 341.7541 V1 106.1667
    19 3.1007 74 D 86.307 Hz 343.6175 V1 106.0763
    20 3.1008 74 D 104.059 Hz 348.7034 V1 105.6905
    21 3.1009 74 D 103.262 Hz 350.4580 V1 105.5554
    22 3.1010 74 D 120.709 Hz 353.4070 V1 104.9813
    23 3.1011 74 D 119.776 Hz 354.8020 V1 104.9695
    24 3.1012 98 D 101.198 Hz 361.5887 V1 105.6596
    25 3.1013 98 D 118.295 Hz 361.9065 V1 105.0703
    26 3.1014 98 D 101.090 Hz 373.1018 V1 105.4789
    27 3.1015 98 D 119.351 Hz 372.2168 V1 104.9217
    28 3.1016 98 D 105.053 Hz 384.0973 V1 104.9202
    29 3.1017 98 D 122.608 Hz 381.6884 V1 104.5954
    30 3.1018 98 D 111.162 Hz 393.4825 V1 104.2616


    soweit funktioniert das auch, zumindest mit den erstellen der log datei, allerdings ist die fast leer, bzw liest einfach keine daten ein!
    Projektarbeit Programmieren SS12
    Tanja Maurer. Der aktuelle Benutzer ist: Besitzer
    Pfad der Eingabedatei:c:/users/besitzer/messdaten_ss12.rec
    Datum: Donnerstag, 19. Juli 2012 Uhrzeit: 16:31:40
    Anzahl der eingelesenen Festpunkte: 0
    Anzahl der eingelesenen Standpunkte: 0
    Anzahl der eingelesenen Messwerte: 0
    Anzahl der berechneten Neupunkte: 0


    Und die .out Datei, in der die Koordinaten stehen sollen, ist auch leer.
    Punktnummer Ebene|Punktart Rechtswert (Y) Hochwert (X) Höhe (z)

    ich bin mir sicher, dass das problem ganz einfach ist und ich grad nur den wald vor lauter bäumen nicht sehe!
    aber wär super, wenn mir jemand helfen könnte!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tanscha“ ()

    1. Option Strict On
    2. Mach eine WinForms-Anwendung draus, ich hab keine Lust, falsche Pfadnamen einzutippen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Private Sub Grundfaktor(ByVal Zeile As String)
    2. Dim Nummer As Integer
    3. Try
    4. If Zeile.Contains("KOORDINATEN") Then Exit Sub
    5. Zeile = Zeile.Replace(".", ",")
    6. Nummer = CInt(Zeile.Substring(0, 5))
    Da knallt es. Das merkst Du aber nicht, da Du mit Try / Catch alle Fehlermeldungen ignorierst. Lies die Protokolldatei.
    Deine Zeilenaufdröselung ist etwas daneben.
    Lies mit IO.File.ReadAllLines() die Datei ein.
    Zerlege die Zeile mit Split(" "c") an den Leerzeichen und Du musst keine Positionsakrobatik betreiben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Okay vielen vielen Danke @ RodFromGermany, du hast mir wirklich geholfen.
    Nachdem ich die Try/Catch auskommentiert habe, hab ich viele Fehler gefunden.
    Nur an einer Stelle versteh ich nicht, was er mir da erzählt:

    VB.NET-Quellcode

    1. Private Sub Rechnung(ByVal Zeile As String)
    2. Dim Nummer As Integer
    3. 'Try
    4. If Zeile.Contains("KOORDINATEN/POLARPUNKTE") Then Exit Sub
    5. Zeile = Zeile.Replace(".", ",")
    6. Zeile = CStr(CInt(Zeile.Substring(0, 5)))
    7. Rechenwerte(Zähler, 0) = Nummer
    8. Rechenwerte(Zähler, 1) = CDec(Zeile.Substring(10, 12))
    9. Rechenwerte(Zähler, 2) = CDec(Zeile.Substring(19, 2))
    10. Rechenwerte(Zähler, 3) = CDec(Zeile.Substring(36, 12))
    11. Rechenwerte(Zähler, 4) = CDec(Zeile.Substring(53, 11))
    12. Rechenwerte(Zähler, 5) = CDec(Zeile.Substring(67, 8))
    13. Zähler = CShort(Zähler + 1)
    14. Anzahl_Mess = CShort(Anzahl_Mess + 3)
    15. Anzahl_Stpkt = CShort(Anzahl_Stpkt + 1)
    16. 'Catch ex As Exception
    17. ' Protokol("In der Zeile " & Nummer & " ist ein Fehler: " & ex.Message)
    18. 'End Try
    19. End Sub


    Hier kommt die Fehlermeldung ab den Zeilen wo Rechenwerte steht, und zwar für jede Zeile: startIndex darf nicht länger als die Länge der Zeichenfolge sein.
    Parametername: startIndex

    Was genau ist hier mit dem startIndex gemeint?

    Tanscha schrieb:

    Zeile = CStr(CInt(Zeile.Substring(0, 5)))
    Rechenwerte(Zähler, 0) = Nummer
    Rechenwerte(Zähler, 1) = CDec(Zeile.Substring(10, 12))


    Zeile -> ist maximal 5 (FÜNF) Zeichen lang
    Und dann versuchst du auf Index 10 (etc) zuzugreifen usw. Da ist die wohl die Logik durcheinander gekommen ...

    EDIT:
    Dim Nummer -> aber nie verwendet
    Sollte das erste vlt Nummer = CStr(CInt(Zeile.Substring(0, 5))) sein?
    Die Arbeit mit Strings, die immer an derselben Position äquivalente Parts stehen haben, geht i.A. vor die Hose.
    Zerleg den String mit Split und arbeite mit den Substrings, die da entstehen :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hm okay, das mit Zeile und Nummer war mein Fehler...

    das geht jetzt zumindest. Jetzt fällt ihm plötzlich ein, dass er nichtmehr sortieren will...
    und zwar genau hier:

    VB.NET-Quellcode

    1. SortWerte.Add(New Gleichsetzen(BerechneteWerte(j, 1)), BerechneteWerte(j, 2))

    Zeile 58...

    mit Try läufts, abe sortiert halt nix

    Tanscha schrieb:

    Zeile 58...

    Und? Bei welchem Code?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Tanscha schrieb:

    Ja, die Komik der Aussage war geplant
    Ich denke eher, Du hast den Inhalt der Aussage noch nicht begriffen.
    Du hast die Hilfen, die Dir Dein falsches Programm versucht hat zu geben einfach in die Tonne gekloppt statt sie zu lesen und zu verstehen und sie umzusetzen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!