AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Memo1.Text.Length erzeugt "Integer Overflow"

Ein Thema von freejay · begonnen am 18. Mai 2017 · letzter Beitrag vom 20. Mai 2017
 
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Memo1.Text.Length erzeugt "Integer Overflow"

  Alt 18. Mai 2017, 18:35
(außer über eine Loop über alle Zeilen: Das würde viel zu lange dauern...).
SynMemo hat das Attribut Lines. Das ist vom Typ TStrings. Wenn man sich nun anschaut, wie TStrings an den Inhalt von Text kommt, dann stellt man fest, dass in einer Schleife von 0 bis Count - 1 jede Zeile an einen String angehängt wird.
Hier wurde also bereits einmal zum Ermitteln von Text über die alle Zeilen iteriert.
Damit das Ganze funktioniert wird auch für jede Zeile die Länge des Zeileninhaltes ermittelt.

Kann mir nicht vorstellen, dass ein Iterieren über alle Zeilen und das Summieren der jeweiligen Zeilenlänge länger dauert, als eben eine Aufgabe, die genau dies als Teilmenge enthält.

Der Eigenbau hätte hier dann auch noch den Vorteil, dass man für die Summe einen Typen wählen kann, der ausreichend groß ist.

Da die Länge niemals kleiner 0 sein wird, kann man dann auch direkt einen Typen wählen, der nur positive Werte zulässt.

Zitat von Delphi 7-Sourcen zu TStrings:
Delphi-Quellcode:
...
TStrings = class(TPersistent)
...
property Text: string read GetTextStr write SetTextStr;
Einfach mal in die Quellen von function TStrings.GetTextStr: string; schauen. Bei Delphi 7 wird da mit Integer gearbeitet. Reicht das für die hier genutzten Inhalte des SynMemos aus oder kracht es da bereits intern, so dass eine eigene Typauswahl für das Ergebnis von Length nicht für die Fehlerbehebung ausreicht.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 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