Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [theoretische Frage] max Länge einer TStringList (https://www.delphipraxis.net/138650-%5Btheoretische-frage%5D-max-laenge-einer-tstringlist.html)

BAMatze 14. Aug 2009 06:57


[theoretische Frage] max Länge einer TStringList
 
Hallo und guten Morgen an alle,

Hab da mal ne theoretische Frage, wieviele Strings maximal in eine TStringlist passen? Habe mich hier mal umgeschaut und es wurde zwar schonmal nach der max Länge eines Strings gefragt aber leider habe ich nichts zu meiner Frage auf die Schnelle gefunden. (hier mal eine meiner Suchen).

Vielen Dank
BAMatze

holliesoft 14. Aug 2009 06:59

Re: [theoretische Frage] max Länge einer TStringList
 
<qualifizierte Vermutung>
Ich würde mal tippen, max. 2^31 Zeichen (Maximaler Int32-Wert)...
</qualifizierte Vermutung>

mleyen 14. Aug 2009 07:00

Re: [theoretische Frage] max Länge einer TStringList
 
Delphi-Quellcode:
array[0..(Maxint div 16)]
Joa, soviele werden´s wohl sein. :lol:

himitsu 14. Aug 2009 07:06

Re: [theoretische Frage] max Länge einer TStringList
 
mit soeiner persönlichen search_id können wir anderen nicht viel anfangen
DP-Suche
Keine Beiträge entsprechen Deinen Kriterien.

Aber bei einer normalen Win32-Delphianwendung one wird es solange gehn, bis dir der Speicher ausgeht.

Also im Nomalfall maximal 2 GB abzüglich des sonstig belegten virtuellen Speichers (auch den durch die Speicherfragmentierung belegten) oder bis dir der RAM ausgeht.
Ich würde also mal von bis zu 1,8 GB ausgehn und beim 3GB-"Hack" 2,8 GB

mleyen 14. Aug 2009 07:15

Re: [theoretische Frage] max Länge einer TStringList
 
Das da oben war kein Witz, es müsst eigentlich Classes.MaxListSize mal '' reinpassen. :wink:

Edit:
Das war jetzt zur TStringList, die maximallänge eines strings kenn ich nicht.
Da würd ich auf holliesoft´s Äußerung tippen. (nur 2^32, da Cardinal)

BAMatze 14. Aug 2009 07:25

Re: [theoretische Frage] max Länge einer TStringList
 
Zitat:

Zitat von himitsu
DP-Suche
Keine Beiträge entsprechen Deinen Kriterien.

ups bei mir standen da ebend 4 Beiträge. 2. Test versuche es nochmal, hoffe es klappt diesmal.

@all danke schonmal
BAMatze

[Edit] Link getestet und bei mir funzt er jetzt [/Edit]

Sko 14. Aug 2009 09:14

Re: [theoretische Frage] max Länge einer TStringList
 
Zitat:

Zitat von BAMatze
ups bei mir standen da ebend 4 Beiträge. 2. Test versuche es nochmal, hoffe es klappt diesmal.

@all danke schonmal
BAMatze

[Edit] Link getestet und bei mir funzt er jetzt [/Edit]

Es ist wieder ne Such-ID, das geht nicht, benutze doch einfach den [dp]-Tag (steht unter Such-Anfragen beim Verfassen einer Antwort)

himitsu 14. Aug 2009 09:16

Re: [theoretische Frage] max Länge einer TStringList
 
Zitat:

Zitat von BAMatze
[Edit] Link getestet und bei mir funzt er jetzt [/Edit]

bei dir, aber nicht bei anderen ... kennst du schon die [dp]-Tags? :zwinker:
abgesehn davon, daß die DP diese Suchergebnise eh nicht lange speichert.

hier mal eine Suche von mir :angel2:
Hier im Forum suchenSuchen > http://www.delphipraxis.net/search.p...398624&start=0

tomsson74 14. Aug 2009 09:33

Re: [theoretische Frage] max Länge einer TStringList
 
Zitat:

Zitat von himitsu
Ich würde also mal von bis zu 1,8 GB ausgehn und beim 3GB-"Hack" 2,8 GB

Bist Du da sicher ? Ist es nicht so, dass eine 32bit Anwendung maximal 2GB Speicher adressieren kann ? Wie soll es mit dem Hack funktionieren ?

/Thomas

himitsu 14. Aug 2009 09:43

Re: [theoretische Frage] max Länge einer TStringList
 
jupp, aber da ich entweder nicht soviel RAM benötige oder auf MMFs ausweiche, hab ich es noch nie wirklich benötigt (lohnt sich eh nur, wenn man im System mindestens 4 GB an physischem RAM hat, da ja sonst eh ständig nur ausgelagert würde)


man kann in der EXE (im NT_HEADER) ein Flag setzen, womit windows weiß, daß man auch das ober 32. Bit des Pointers nutzen möchte:
http://cc.embarcadero.com/Item/24309

da muß man aber auch etwas aufpassen, daß die Anwendung dieses verkraftet

es gibt noch viele Codes, welche einen Pointer wie einen Integer betrachten 0(nil) = leer, bis MaxInt = OK und im negativen Bereich steht der Wert für einen Fehler, was also bei über 2 GB zu Problemen führt.

BAMatze 14. Aug 2009 10:06

Re: [theoretische Frage] max Länge einer TStringList
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von BAMatze
[Edit] Link getestet und bei mir funzt er jetzt [/Edit]

bei dir, aber nicht bei anderen ... kennst du schon die [dp]-Tags? :zwinker:
abgesehn davon, daß die DP diese Suchergebnise eh nicht lange speichert.

hier mal eine Suche von mir :angel2:
Hier im Forum suchenSuchen > http://www.delphipraxis.net/search.p...398624&start=0

:roll: Fast ein Jahr dabei und man lernt nie aus :pale:

Naja ist ja auch erstmal nur eine theoretische Frage gewesen, weil ich überlege aus einem dynamischen Array, welches ich in der Anzahl auf die Breite eines Bitmaps beschränke, zu ersetzen. Möchte den Informationsverlust, welcher ja entsteht, wenn die Daten den Rand des Bitmaps erreichen, eigentlich verhindern. Vorteil für das was ich mache ist, ich kann die Verwendung Der Komponente diesmal auf einen relativ geringen Zeitraum (-> denke mal nicht mehr als ein paar 1000 Einträgen) beschränken. Da man ja aber besser beraten ist, sowas auch für mögliche andere Fälle vorzubereiten, suche ich gerade nach neuen Möglichkeiten, wo auch ein längerer Zeitraum/ sehr viel mehr Daten dauerhaft dargestellt werden können.

Sitze aber gerade noch an einem anderen Problem. Das hier kommt aber sofort danach.

Vielen Dank
BAMatze

himitsu 14. Aug 2009 12:21

Re: [theoretische Frage] max Länge einer TStringList
 
Zitat:

Zitat von BAMatze
weil ich überlege aus einem dynamischen Array, welches ...

ein dynamisches Array selber kann zwar theoretisch auch maximal fast 2 GB an Daten aufnehmen

genauer gesagt:
Delphi-Quellcode:
Array[0 .. ($7fffffff - 3 * SizeOf(Integer)) div SizeOf({Element}) - 1]
was aber praktisch niemals erreicht werden kann, da das Array schließlich an einem Stück im Speicher liegt und dadurch, daß schon überall verteil die Dateiimages der EXE und der DLLs, sowie der Stack und der bereits reservierte Speicher rumliegt und somit garnicht mehr soein großes "zusammenhängendes" Stückchen im virtuellen Speicher der Anwendung frei ist.

bei der StringList ist noch der Vorteil, daß die einzelnen Strings auch verteilt und nicht an einem Stück rumliegen können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 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