ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
246
246
EMPFEHLEN
-
Hallo zusammen! Ich wende mich mal an euch alle und hoffe ich bekomme ein paar kraetive Vorschläge wie ich die Laufzeit eines gewissens Programmabschnittes verbessern kann.
Das Programm soll 2 Werte mit einander vgl. und wenn eine Übereinstimmung gefunden ist, gewissen Zeilen mit Spalten füllen. Ich habe vorher die Daten die ich eintragen will aus einem Tabellenblatt gelesen. Dies soll immer den wechsel ziwschen den Blättern ersparen und ging für mich der Ansicht nach durch das Programm ausgeführt schneller.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
'auslesen aus dem Tabellenblatt und schreiben in einen eigene TypeDef For j = 2 To anz_zeil_fix fix_data(j).uhrzeit = Range("A" & j).Value fix_data(j).RW = Range("AH" & j).Value fix_data(j).HW = Range("AI" & j).Value fix_data(j).H = Range("AJ" & j).Value Next j Sheets("Berechnung_fixing_Diagramm").Select g = 2 'Hier erfolgt die Prüfung, ob ich etwas eintragen muss oder nicht For k = 2 To anz_zeil - 1 If Range("A" & k).Value = fix_data(g).uhrzeit Then 'ins feld schreiben und g hochzählen Range("B" & k).Value = fix_data(g).RW Range("C" & k).Value = fix_data(g).HW Range("D" & k).Value = fix_data(g).H g = g + 1 End If Next k
Wenn ihr Verbesserungsvorschläge habt, wäre ich euch dankbar. Es handelt sich um eine sehr große Punktmenge. Es werden Aufzeichnungen 24Stunden am Tag gemacht mit einer Rate von 5sec. Da kann sich jeder selber ausrechen, wieviel Zeilen da entstehen.
Ich hoffe ihr habt verstanden wo mein Problem liegt, oder geht das leider nicht schneller!
Ich wünsche euch morgen einen schönen erholsamen Feiertag!
Gruß Winner
-
Hallo ich noch mal!
Kann mir denn keiner helfen und hätte eine schnelleren Lösungsvorschlag oder zu mindest eine Idee wie ich es schneller machen kann.
Ich habe da auch schon selber eine andere Idee, bringt aber nur dann was wenn viele Lücken in den Aufzeichnungen sind, das ist aber kaum der Fall.
Immer wenn keine Daten vorliegen Prüfe ich nicht die nächste Zeile sondern bilde eine Zeitdiffereenz und leite mir daraus die entsprechende Zeile ab! Vielleicht fällt euch noch was ein wie ich es schneller hinbekommen kann!
Habt ihr da einen Lösungsvorschlag, dann immer her damit.
Also hier dann mal noch mein code auszug
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
For k = 2 To anz_zeil - 1 If (Cells(k, 1).Value = fix_data(g).uhrzeit) Then 'ins feld schreiben und g hochzählen Range("B" & k).Value = fix_data(g).RW Range("C" & k).Value = fix_data(g).HW Range("D" & k).Value = fix_data(g).H g = g + 1 '--------------------------------------------- Else 'wenn ich keine übereinstimmung habe, dann bilde ich die Differenz zwichen den verglichenen Zeiten und ermittle daraus die neue Zeile sprungIndex = 0 Dim date_datumDiff As Date Dim dbl_datumDiff As Double 'Konvertierungen date_datumDiff = fix_data(g).uhrzeit - Cells(k, 1).Value dbl_datumDiff = CDbl(date_datumDiff) * 24 '*24 um korrekte Zahl zu bekommen MsgBox dbl_datumDiff 'Berechnungen sprungIndex = dbl_datumDiff / dbl_sec5Zahl - 1 'es wird eins abgezogen da durch das next i auch noch mal um eins erhöht wird MsgBox sprungIndex k = k + CInt(sprungIndex) 'sprungindex noch nach Integer konvertireen könnte wichtig sein 'todo '----------------------------------------------------------------- End If Next k
Gruß und besten dank
Ähnliche Themen
-
Dll zur Laufzeit einbinden?
Von Fastkiller im Forum .NET CaféAntworten: 5Letzter Beitrag: 22.11.08, 13:11 -
Kompilierung zur Laufzeit
Von teelleet im Forum .NET CaféAntworten: 11Letzter Beitrag: 11.11.08, 10:22 -
Laufzeit messen
Von baccula im Forum C/C++Antworten: 1Letzter Beitrag: 26.08.07, 18:50 -
Polygon verringerung
Von tcppunk im Forum 3D Studio MaxAntworten: 12Letzter Beitrag: 05.10.04, 14:04 -
Laufzeit testen
Von Flunster im Forum JavaAntworten: 1Letzter Beitrag: 11.02.04, 07:45





Zitieren
Login





