AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 03:32

Parameter dieser Suchanfrage:

Suche in Thema: StringReplace und doppelte Leerzeichen
Suche alle Beiträge, die von "jbg" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 5 von insges. 5 Treffern
Suche benötigte 0.004s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Object-Pascal / Delphi-Language

    Re: StringReplace und doppelte Leerzeichen

      Delphi
      by jbg, 11. Apr 2006
    Warum das Rad neu erfinden:

    AnsiStringReplace vom FastCode Projekt sollte reichen. Schneller wird es wohl nicht gehen.
  • Forum: Object-Pascal / Delphi-Language

    Re: StringReplace und doppelte Leerzeichen

      Delphi
      by jbg, 10. Apr 2006
    Es hängt auch von der verwendeten CPU ab, da diese manche Befehle schneller als andere ausführen.


    Dabei müsste man trotzdem eine Kopie des Strings anfertigen, wenn man nicht mit StringReplace-Methoden arbeiten will (Delete+Insert). Und mit einem Rückgabe-String ist die Funktion etwas mächtiger und man kann sie mit Funktionsaufrufen speißen.
  • Forum: Object-Pascal / Delphi-Language

    Re: StringReplace und doppelte Leerzeichen

      Delphi
      by jbg, 10. Apr 2006
    Wenn du jetzt das @XXX noch durch ein PChar(XXX) ersetzt, dann gewinnst du nochmal Zeit, denn @S bewirkt einen UniqueString()-Aufruf. Und das jedes mal. Result ist aber schon ein neuer String, da er mit SetLength neuen Speicher bekommen hat. Ein UniqueString Aufruf ist also nicht notwendig und kostet nur Zeit.

    Ihr streitet euch jetzt nicht ernsthaft um ein paar ms Prozessorzeit, oder?
    Bis...
  • Forum: Object-Pascal / Delphi-Language

    Re: StringReplace und doppelte Leerzeichen

      Delphi
      by jbg, 10. Apr 2006
    Da Result hierbei ein String ist, besteht da nicht das Problem mit dem blockierten EAX Register. Ohne die Hilfsvariable Res spart man sich zudem einen vom Compiler eingefügten try/finally-Block.

    Folgende Funktion macht maximal 2 Speicherzugriffe pro Schleifendurchlauf (BDS 2006)
    function RemoveDblSpaces3(const InStr: string): string;
    type
    IntPtr = Integer;
    var
    LastIsSpace: Boolean;
    ...
  • Forum: Object-Pascal / Delphi-Language

    Re: StringReplace und doppelte Leerzeichen

      Delphi
      by jbg, 10. Apr 2006
    Wobei man deine Funktion auch noch mit ein paar kleineren Änderungen schneller machen kann.

    Das fängt z.B. schon mal damit an, dass man sich das InStr in eine lokale Char Variable zwischen speichern kann (die dann vom Compiler in ein Register geschoben wird). Des weiteren ist es schneller, wenn man InStr schreibt, und I von 0 bis Length-1 laufen lässt (am besten auch noch rückwärts, die die...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=jbg&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=67152
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz