AGB  ·  Datenschutz  ·  Impressum  







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

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 16:32

Parameter dieser Suchanfrage:

Suche in Thema: Diese funktion schneller machen?
Suche alle Beiträge, die von "negaH" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 8 von insges. 8 Treffern
Suche benötigte 0.006s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 2. Nov 2004
    Im Source der Funktion habe ich ein Stückchen auskommentiert. Lies dazu mal den Kommentar, der beantwortet exakt diese Frage. Die normale Funktion betrachtet jeden einzelnen Separator als Separator für einen Teilsting. Zb. bei einem String wie "rot,grün,gelb,,blau" wäre es logisch das der String zwischen ",," eben auch gezählt wird und einen eigenen Index besitzt. Nun, die Standardvorgehensweise...
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 2. Nov 2004
    Jo, das ist richtig, und ich finde es auch logischer. Viele Indizes, sei es Arrays, TList, TStrings usw. gehen von 0 bis Count -1, man arbeitet also viel öfters 0-basiert als 1-basiert. Das erste Element sollte den Index 0 haben. Du kannst das aber sehr einfach ändern, indem du als erstes in der Funktion Dec(Index); aufrufst.

    Gruß Hagen
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 30. Okt 2004
    probier mal

    R := Pointer(Result);
    while S < D do
    begin
    R^ := S^;
    Inc(S);
    Inc(R);
    end;
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 30. Okt 2004
    Ja, man könnte jeden Spezialfall mit einer eigenen Abfrage programmieren. Ich persönlich hasse das aber. Lieber die Funktionen so allgemein, kurz und schnell wie möglich halten.
    Zb. in meinem obigem Vorschlag würde bei Text = '';

    while (S^ <> #0) ... do;

    schon zuschlagen. D.h. eine einzigste Abfrage. Dann weiter:

    D := S;
    while (D^ <> #0) do ;
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 30. Okt 2004
    Stimmt, habe gerade nochmal in die RTL reingeschaut ;)

    Allerdings muss PChar(String) dann benutzt werden, denn wenn Pointer(String) == NIL ist, wandelt _LStrToPChar() -> PChar(String) diesen NIL Zeiger in einen Zeiger auf einen PChar mit Null-Terminator um.
    Wenn man also Pointer(String) benutzen will so muß man danach zusätzlich abfragen ob dieser Zeiger NIL ist. Dies wird dann aber wirklich...
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 30. Okt 2004
    @Nothine: tja, das sind solche internen Änderungen zwischen den einzelnen Delphi Versionen. Bis Delphi 5 bin ich mir sicher das intern PChar(String) identisch zu Pointer(String) ist. Wenn aber in Delphi 7 intern LStrToPChar() aufgerufen wird dann muß das seine Gründe haben. Da wir unbedingt einen 0-terminierten PChar benötigen würde ich es so lassen wie es ist. Einfach der Kompatibilität halber....
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 29. Okt 2004
    Warum sollte es ?

    Gruß Hagen
  • Forum: Sonstige Fragen zu Delphi

    Re: Diese funktion schneller machen?

      Delphi
      by negaH, 29. Okt 2004
    function ExtractToken(const Text: String; Index: Integer; const Seperator: Char = ' '): String;
    var
    S,D: PChar;
    begin
    S := PChar(Text);
    while (S^ <> #0) and (Index > 0) do
    begin
    if S^ = Separator then Dec(Index);
    Inc(S);


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=negaH&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=32897
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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