![]() |
Code beschleunigen
Hallo,
ich suche und ersetze Text in einer Excel-Spalte mit folgendem Code:
Delphi-Quellcode:
Beide Schleifen werden ca. 5300 mal durchlaufen. Wie kann ich da an der
Application.ProcessMessages;
for i := 0 to sl.Count-1 do begin Label6.Caption := IntToStr(i); Label6.Refresh; if sl[i] <> '' then begin arr := explode(';',sl[i]); for j := 1 to 5324 do begin help := Sheet.Cells[j,13].Value; help := StringReplace(help,arr[0],arr[1],[rfReplaceAll]); Sheet.Cells[j,13].Value := help; end; arr := nil; end; end; Gechwindigkeit noch was drehen? (sl ist eine StringList) Viele Grüße ... |
Re: Code beschleunigen
StringReplace vom FastCode Projekt oder die JEdi Sachen sind auch schon schneller als Delphi ..
Eine Kopie sparen:
Delphi-Quellcode:
das langsamste wird aber wohl der Excel Zugriff sein.
Sheet.Cells[j,13].Value := StringReplace(help,arr[0],arr[1],[rfReplaceAll]);
|
Re: Code beschleunigen
Hi,
nein, ich ersetze einen String. arr ist ein dynamisches Array. Viele Grüße ... |
Re: Code beschleunigen
Ist Excel während des Vorgangs sichtbar?
|
Re: Code beschleunigen
Im Moment schon. muss aber nicht!
|
Re: Code beschleunigen
Es sollte dann schneller sein.
|
Re: Code beschleunigen
Hmm ich glaube ein par Sekunden bringt das schon. Ein Durchlauf der ersten Schleife dauert aber
immer noch ~ 24 Sek. Kann das sein? |
Re: Code beschleunigen
Zitat:
|
Re: Code beschleunigen
Hi,
das bringt mir nochmal ne Sekunde (Label Refresh ganz raus)! Mann, da muss doch noch was gehen :? |
Re: Code beschleunigen
rausnehmen kannst ja dann auch noch arr := nil;
vllt bringt dir das auch noch mal nen wenig ein.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz