Hallo liebe Community,
ich bin neu hier und hoffe das ihr mir weiterhelfen könnt. Wahrscheinlich ist die Antowrt total easy nur ich bin zu unerfahren in VB. Also hier mein Problem ich habe folgenden String:
"5.000","560.671","2774.555176","106.804253","0.000000","0","7.668123","-0.124833","0.186881","-42.160633","86.507934","0.000000","0.000000","0.000000","-34.252228","-62.946640","62.162693"
"5.100","560.858","2766.813477","106.565941","0.000000","0","8.249795","-0.210257","0.067246","-42.160633","82.539684","0.000000","0.000000","0.000000","-37.851170","-63.114376","62.010254"
"5.200","561.049","2765.903809","106.334648","0.000000","0","8.808711","-0.191465","0.254633","-43.625183","82.539684","0.000000","0.000000","0.000000","-41.267799","-63.279362","61.838276"
"5.300","561.244","2769.425049","106.103081","0.000000","0","9.357085","-0.228203","0.019191","-42.368832","84.126985","0.000000","0.000000","0.000000","-46.862309","-63.440857","61.642582"
"5.400","561.443","2776.671143","105.875153","0.000000","0","9.955027","-0.285123","0.280527","-41.331253","84.920633","0.000000","0.000000","0.000000","-45.507015","-63.597160","61.422455"
"5.500","561.643","2759.756592","105.648445","0.000000","0","10.573355","-0.089172","-0.440370","-36.472061","81.746030","0.000000","0.000000","0.000000","-42.743111","-63.746090","61.177452"
"5.600","561.845","2710.893066","105.417015","0.000000","0","11.184001","-0.104688","-0.100751","-29.574238","73.809522","0.000000","0.000000","0.000000","-31.372002","-63.889732","60.909531"
Nun sind zum Beispiel nur die Sekunde 5,2 bis 5,4 relevant.Wie schaffe ich das dann nur die Zeilen, die bei oder zwischen diesen Werten liegen in meiner Richtextbox angezeigt werden? Zudem sollte er allerdings sehr schnell sein, da manche Textdateien bis zu 20000 Zeilen haben. Ich habe es bereits mit dem Code versucht:
Warum ich ihn nicht einfacher schreibe hat seinen Hintergrund, dieser ist aber sehr kompliziert zu verstehen. Der Code funktioniert auch prenzipiell, nur wenn die gesuchte Sekunde in der 20000 Zeile ist, dauert es ca. 20 Sekunden bis er jede einzeln abgleicht. Also brauch ich ein schnelleren Code.
Wenn ihr irgendetwas habt dann bitte helft mir. Ich hänge seit Wochen an dieser Stelle fest.
Grüße Robin
ich bin neu hier und hoffe das ihr mir weiterhelfen könnt. Wahrscheinlich ist die Antowrt total easy nur ich bin zu unerfahren in VB. Also hier mein Problem ich habe folgenden String:
"5.000","560.671","2774.555176","106.804253","0.000000","0","7.668123","-0.124833","0.186881","-42.160633","86.507934","0.000000","0.000000","0.000000","-34.252228","-62.946640","62.162693"
"5.100","560.858","2766.813477","106.565941","0.000000","0","8.249795","-0.210257","0.067246","-42.160633","82.539684","0.000000","0.000000","0.000000","-37.851170","-63.114376","62.010254"
"5.200","561.049","2765.903809","106.334648","0.000000","0","8.808711","-0.191465","0.254633","-43.625183","82.539684","0.000000","0.000000","0.000000","-41.267799","-63.279362","61.838276"
"5.300","561.244","2769.425049","106.103081","0.000000","0","9.357085","-0.228203","0.019191","-42.368832","84.126985","0.000000","0.000000","0.000000","-46.862309","-63.440857","61.642582"
"5.400","561.443","2776.671143","105.875153","0.000000","0","9.955027","-0.285123","0.280527","-41.331253","84.920633","0.000000","0.000000","0.000000","-45.507015","-63.597160","61.422455"
"5.500","561.643","2759.756592","105.648445","0.000000","0","10.573355","-0.089172","-0.440370","-36.472061","81.746030","0.000000","0.000000","0.000000","-42.743111","-63.746090","61.177452"
"5.600","561.845","2710.893066","105.417015","0.000000","0","11.184001","-0.104688","-0.100751","-29.574238","73.809522","0.000000","0.000000","0.000000","-31.372002","-63.889732","60.909531"
Nun sind zum Beispiel nur die Sekunde 5,2 bis 5,4 relevant.Wie schaffe ich das dann nur die Zeilen, die bei oder zwischen diesen Werten liegen in meiner Richtextbox angezeigt werden? Zudem sollte er allerdings sehr schnell sein, da manche Textdateien bis zu 20000 Zeilen haben. Ich habe es bereits mit dem Code versucht:
VB.NET-Quellcode
- Richtextbox1.Text = ""5.000","560.671","2774.555176","106.804253","0.000000","0","7.668123","-0.124833","0.186881","-42.160633","86.507934","0.000000","0.000000","0.000000","-34.252228","-62.946640","62.162693"
- "5.100","560.858","2766.813477","106.565941","0.000000","0","8.249795","-0.210257","0.067246","-42.160633","82.539684","0.000000","0.000000","0.000000","-37.851170","-63.114376","62.010254"
- "5.200","561.049","2765.903809","106.334648","0.000000","0","8.808711","-0.191465","0.254633","-43.625183","82.539684","0.000000","0.000000","0.000000","-41.267799","-63.279362","61.838276"
- "5.300","561.244","2769.425049","106.103081","0.000000","0","9.357085","-0.228203","0.019191","-42.368832","84.126985","0.000000","0.000000","0.000000","-46.862309","-63.440857","61.642582"
- "5.400","561.443","2776.671143","105.875153","0.000000","0","9.955027","-0.285123","0.280527","-41.331253","84.920633","0.000000","0.000000","0.000000","-45.507015","-63.597160","61.422455"
- "5.500","561.643","2759.756592","105.648445","0.000000","0","10.573355","-0.089172","-0.440370","-36.472061","81.746030","0.000000","0.000000","0.000000","-42.743111","-63.746090","61.177452"
- "5.600","561.845","2710.893066","105.417015","0.000000","0","11.184001","-0.104688","-0.100751","-29.574238","73.809522","0.000000","0.000000","0.000000","-31.372002","-63.889732","60.909531""
- Dim anfuehrungszeichen as String = Label1.Text 'Welches das Anführungszeichen als Text enthält
- Dim index as Integer = 1
- Dim gesuchtestartsekunde as String = 5.200
- Dim gesuchteendsekunde as String = 5.400
- Dim aktuellesekunde as string = ""
- Do until aktuellesekunde = gesuchtestartsekunde
- aktuellesekunde = Richtextbox1.Text.Split(anfuehrungszeichen)(index)
- index += 34 'da jede Zeile 34 Anführungszeichen enthält.
- If aktuellesekunde = gesuchtestartsekunde Then
- Richtextbox1.Text = Richtextbox1.Text.Replace (aktuellesekunde, "#")
- End if
- Loop
- index = 0
- Do until aktuellesekunde = gesuchteendsekunde
- aktuellesekunde = Richtextbox1.Text.Split(anfuehrungszeichen)(index)
- index += 34 'da jede Zeile 34 Anführungszeichen enthält.
- If aktuellesekunde = gesuchteendsekunde Then
- Richtextbox1.Text = Richtextbox1.Text.Replace (aktuellesekunde, "*")
- End if
- Loop
- RichTextbox1.Text = Richtextbox1.Text.Split("#")(1)
- RichTextbox1.Text = Richtextbox1.Text.Split("*")(0)
Warum ich ihn nicht einfacher schreibe hat seinen Hintergrund, dieser ist aber sehr kompliziert zu verstehen. Der Code funktioniert auch prenzipiell, nur wenn die gesuchte Sekunde in der 20000 Zeile ist, dauert es ca. 20 Sekunden bis er jede einzeln abgleicht. Also brauch ich ein schnelleren Code.
Wenn ihr irgendetwas habt dann bitte helft mir. Ich hänge seit Wochen an dieser Stelle fest.
Grüße Robin