Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#1

Array of Integer setzen mit StrToIntDef(): gibt es was schnelleres?

  Alt 13. Sep 2022, 19:28
Hallo,

ich lese aus einer Tabelle bestimmte Felder in ein ClientDataSet.
Damit bin ich schon mal recht schnell.

Es gibt nun ein Tabellen-Feld als String (dxMemData1.Fields[8]), welches *immer exakt* 4320 Zeichen enthält (Nullen oder Einsen, aber eben als String).

Nun muss ich bestimmte Berechnungen damit anstellen. Dazu ist es zwingend notwendig diesen String in ein Array of Integer zu packen.
Mein Profiling hat mir schon geholfen diverse andere Optimierungen vorzunehmen, aber das Füllen des Array of Integer dauert noch viel zu lange, weil das so oft aufgerufen wird. Da habe ich keine Idee wie ich das beschleunigen könnte. Hier mein Codeschnipsel:

Delphi-Quellcode:
VAR
l_arr: ARRAY [0 .. 4319] OF Integer;
BEGIN
  FOR i := 0 TO 4319 DO
  BEGIN
    l_arr[i] := StrToIntDef( frm_Test_Framework.dxMemData1.Fields[8].AsString[i + 1], 9 );
  END;
...
END;
Gibt es hier eine Möglichkeit das ganze zu beschleunigen?

Vielen Dank für Vorschläge!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat