Hallo Joe,
Wie kann es sein das hier do gebremst wird ?
For I = 0 To 70000
Progzähler = Progzähler + 1
ProgBalken (Progzähler)
If BSCBSArray2(I, 1) = TextBox1.Text Then TroubleId =
BSCBSArray2(I, 2)
If BSCBSArray2(I, 1) = TextBox1.Text Then WartungsId =
BSCBSArray2(I, 3)
Next I
Der Progressbar muss angezeigt werden. Die Bildaktualisierung frisst die Zeit.
Wozu Progzähler? Da reicht auch das i.
Aktualisiere einfach den balken nicht so oft, dann bremst er nicht so stark.
If i Mod 100 = 0 Then Progbalken.Value = i
Andere frage: Passt sich eine String variable an die größe des
inhalts an?
Ja, wenn Du die Länge nicht festlegst.
oder belegt sie immer den komplett möglichen platz im speicher ?
Ansonsten wäre eine Variable die Max 999999999 darstellen kann
besser ?
Single oder Long ? oder ist das egal welchen Typ ich für einen
wert von 0-999999999 nehme ?
Für Single oder Integer ist der Wert zu groß. Single oder Double brauchst Du nur, wenn Du Dezimalstellen brauchst. Das sieht nach Long aus. Das ist natürlich schneller als ein String, denn wenn Du eine Zahl verwenden willst muß die ja erst noch umgewandelt werden. Die Verwaltung von Strings verbraucht auch deutlich mehr Rechenzeit und Speicher.
Um ein Stringarray zu verwalten wird für jeden einzelnen String ein Speicherbereich reserviert. Da nimmt das System einfach etwas, wo noch Platz ist. Wo sich dieser Speicherbereich befindet, wird in einem Array aus ebensovielen Asressen gespeichert, wie das Stringarray elemente hat. Die Speicheradressen haben den Typ Long. Der Platz für das Array aus Long-werten verbrauchst Zu für Strings also noch zusätzlich, nur daß da dann nicht Deine Werte gespeichert sind, sondern die Adressen, an denen sich Deine Daten befinden.
Deine Suche dauert für meinen Geschmack ohnehin zu lang. Für 70 000 Zeilen eine Zeit im Sekundenbereich ist zu viel. Musst Du das Array mehrfach durchsuchen? Darf man das eventuell vorher sortieren und dann iterativ suchen? Das könnte um ein Vielfaches schneller sein und Du kannst Dir den Progressbalken eventuell sparen.
Gruß Rainer