Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
Erstmal ein dickes Dankeschön! Dieses Teil ist absolut genial! Eine Frage / Bitte habe ich aber noch: Ich muss häufig mit Unicode-Strings (WideString) arbeiten, leider funktioniert die aktuelle Version aber damit nicht. Das mag natürlich auch daran liegen, dass man die Ansi-String Version von TStringList verwendet (ich selbst hab mein komplettes Programm mittlerweile auf WideString und TTntStringList umgebaut).
Ein erster Versuch den Code in Richtung WideString zu portieren hat zwar (augenscheinlich) geklappt, jedoch ist er mit bösen Exceptions rausgeflogen (PWideChar, statt PChar usw.). Ist es möglich mir bei einer solchen Implementierung zu helfen, oder gibt es gar bereits eine solche? Vielen Dank! Christian |
Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
Wenn der Divider mit einem leeren String aufgerufen wird, gibt es eine Zugriffsverletzung.
|
Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code
Liste der Anhänge anzeigen (Anzahl: 1)
hab mal ein paar Probleme bezüglich Unicode versucht zu beheben
ist allerdings noch nicht getestet (und 'nen Codeformatter ist mal drübergerauscht ... dort drinnen mischten sich vorher mehrer Styles) Grund: http://www.delphipraxis.net/internal...106505#1106505 als Quelle wurde die Unit aus Beitrag #1 genommen Zitat:
|
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
Delphi 7 meldet mir:
Zitat:
|
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
Ja. Und? Woran könnte das liegen?
|
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
Vielleicht daran, dass der Rückgabewert nicht sofort initialisiert wird sondern erst im if :stupid:
Aber da ich nicht weiss, was diese Funktion macht (ich habs aber auch nicht versucht herauszufinden), habe ich da nicht daran rumgefummelt... MfG Z4ppy |
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
Ich habe die Funktion jetzt nicht in ihrer ganzen Logik erfasst, aber man müsste sie so umschreiben können:
Zitat:
Delphi-Quellcode:
Result := False;
If not fEndOfText Then begin ... end; |
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
Moin Detlef,
IMHO sollte man Result erst möglichst spät verwenden, da man ansonsten das (E)AX-Register früh blockiert. Also Folge wäre der resultierende Code dann nicht so gut optimierbar. Je nach Anwendungsfall kann sich das auf die Performance auswirken. |
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
Delphi lagert Result (falls es wirklich in EAX oder EAX+EDX zurückgegeben wird) notfalls auf ein anderes Register oder den Stack aus ... blockiert wird also nichts. :-D
[ot] aber schön dich mal wieder aktiver zu sehn :) |
AW: [Optimiert] Explode Prozedur - Reloaded (Ersatz für CodeLib)
DeddyH:
Vielleicht aber auch:
Delphi-Quellcode:
Auf Zeile 332 ist übrigens eine Funktion einer anderen Kompo mit gleichem Namen so geschrieben.
If fEndOfText Then
Result := False Else begin Result:=True; ... end; MfG Z4ppy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 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