Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu Strings (https://www.delphipraxis.net/98877-frage-zu-strings.html)

maximus Caesar 3. Sep 2007 15:25


Frage zu Strings
 
Hallo!
Wenn ich einen String verwende, wieviel Speicher benötigt der?
Oder ist er Dynamisch?
Wenn ja, wieviel Speicher benötigt er mindestens?
Ich möchte Reale zahlen speichern, also mit Nachkommastellen, aber dafür so wenig speicher wie möglich brauchen. Real benötigt halt 48b und das ist mir zuviel
(es handelt sich um bis zu 5mio Speichersätze)

Klaus01 3. Sep 2007 15:30

Re: Frage zu Strings
 
Hallo,

ein String benötigt pro Zeichen 1 Byte und ein Byte für die Längenangabe.
Also mindestens 2 Byte maximal ....

Aber Deine Datenmenge, so groß ist die doch nicht.

48 Byte * 5 000 000 /1024 = 234375 KByte

Grüße
Klaus

maximus Caesar 3. Sep 2007 15:33

Re: Frage zu Strings
 
Die Datenmenge geht schon, aber bei der Verarbeitung werden nochmals einige Daten erzeugt, was dazu führen kann das die Datenmenge die 1GB grenze schnell überschreitet....

Danke für die schnelle Antwort!!!

RavenIV 3. Sep 2007 15:36

Re: Frage zu Strings
 
Zitat:

Zitat von Delphi-Hilfe
ShortString 255 Zeichen 2 bis 256 Byte
AnsiString ~2^31 Zeichen 4 Byte bis 2 GB


Gruber_Hans_12345 3. Sep 2007 15:50

Re: Frage zu Strings
 
ein real braucht doch keine 48 Byte sondern 48 Bit = 6 Byte

und ein String (zumindest ein "normaler" Delphi string) braucht noch mehr zb.: wird da pro String ein 4Byte Counter mitgeführt (und die Länge ist auch sicher eher 4 Byte groß)

Robert Marquardt 3. Sep 2007 15:52

Re: Frage zu Strings
 
Zitat:

Zitat von maximus Caesar
Ich möchte Reale zahlen speichern, also mit Nachkommastellen, aber dafür so wenig speicher wie möglich brauchen. Real benötigt halt 48b und das ist mir zuviel (es handelt sich um bis zu 5mio Speichersätze)

Wenn du die Zahlen im Dezimalsystem im String ablegen willst, dann ist das gefaehrlich. Es ergeben sich naemlich immer Ungenauigkeiten beim Umwandeln.
Was sind schon ein paar Megabyte. Wenn du sie brauchst, dann brauchst du sie halt. Da jeder String einzeln alloziiert ist, duerfte der reale Speicherverbrauch mit mindestens 5 Byte nicht wirklich besser sein.

KPBecker 3. Sep 2007 15:54

Re: Frage zu Strings
 
Aber:

Wenn du real-Größen zum Speichern und zum Lesen immer wieder in Zahlen (Ziffern) umwandelst, kann das bei häufigem R/W und großen Datenmengen empfindlich in die Rechenzeit gehen !

Außerdem braucht eine real-Größe nur 4-6-8 Byte. Da bist du mit der Zifferdarstellung schnell drüberhinaus.

Klaus-Peter

maximus Caesar 3. Sep 2007 15:55

Re: Frage zu Strings
 
Die Zahlen haben maximal 3 Vorkomma und 2 Nachkomma Stellen...
Ich dachte Real benötigt 48b?

mkinzler 3. Sep 2007 15:57

Re: Frage zu Strings
 
Dann wäre der String ja schon größer.

maximus Caesar 3. Sep 2007 15:59

Re: Frage zu Strings
 
Ups, Stimmt ja....


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz