Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Größe eines Strings (https://www.delphipraxis.net/94636-groesse-eines-strings.html)

dr. love 24. Jun 2007 17:33


Größe eines Strings
 
Wie groß ist ein String mit 3, 5 oder 6 Zeichen in Byte. Knn mir jemand eine allgemeine Formel sagen, mit der ich von der Zeichenanzahl auf die Größe des Strings im Speicher schließen kann? Habe auf Anhieb nichts gefunden :)

mkinzler 24. Jun 2007 17:35

Re: Größe eines Strings
 
Es kommt darauf an, wie du den String deklarierst hast

dr. love 24. Jun 2007 17:37

Re: Größe eines Strings
 
Naja, es geht darum dass ich einen Stream habe, in den ich immer erst die Länge eines Strings und dann den String schreiben möchte. Wie müsste ich da vorgehen? Ein einfaches Stream.Read(..) und Stream.Write(..) liefert nur Zeichensalat... :)

mkinzler 24. Jun 2007 17:39

Re: Größe eines Strings
 
Mit
Delphi-Quellcode:
Length( str)
kannst du die Anzahl der Zeichen abfragen

Dax 24. Jun 2007 17:41

Re: Größe eines Strings
 
Wenn du einen String in einen Stream schreiben willst (und zwar so, dass der String am Ende wieder auslesbar ist), belegt er mindestens 4 + Length(s) > 0 ? Length(s)*sizeof(s[1]) : 0 Byte.

dr. love 24. Jun 2007 17:43

Re: Größe eines Strings
 
das ist mir klar, die frage is nur wie ich das mit dem stream verbinde... kann ich jetz einfach sagen
Delphi-Quellcode:
Stream.Write(string, length(string));
???

Dax 24. Jun 2007 17:43

Re: Größe eines Strings
 
Delphi-Quellcode:
stream.Write(s[1], Length(s));

dr. love 24. Jun 2007 17:46

Re: Größe eines Strings
 
damit schreibe ich doch nur das erste Zeichen meines strings in den stream... oder steh ich grad aufm schlauch^^

DGL-luke 24. Jun 2007 17:50

Re: Größe eines Strings
 
nope. du fängst bei string[1] an und schreibst soviele zeichen wie length(s).

mkinzler 24. Jun 2007 17:51

Re: Größe eines Strings
 
Nein vom ersten Zeichen an die Länge des Strings, also den ganzen.

dr. love 24. Jun 2007 17:55

Re: Größe eines Strings
 
ahso, also muss ich ne for i:= 0 to length(string)-1 -schleife nehmen... ich dachte das geht auch einfacher... aber wie so oft: getäuscht... danke für die hilfe :wink:

Dax 24. Jun 2007 17:57

Re: Größe eines Strings
 
Zitat:

Zitat von dr. love
ahso, also muss ich ne for i:= 0 to length(string)-1 -schleife nehmen... ich dachte das geht auch einfacher...

Wer lesen kann, ist klar im Vorteil... Oder steh ich grad auf dem Schlauch? :gruebel:

mkinzler 24. Jun 2007 17:57

Re: Größe eines Strings
 
Nein, es wird doch der ganze String geschrieben: s[1] ist nicht nur das erste Zeichen sondern auch ein Zeiger auf dieses.

dr. love 24. Jun 2007 18:02

Re: Größe eines Strings
 
Aaaaaaaa! Ich steh heute wirklich aufm Schlauch! Echt cool, dass ihr mir überhaupt noch weiterhelft... also reicht es jetzt einfach zu schrieben:

Delphi-Quellcode:
Stream.Write(s[0], Length(s));
?

Dax 24. Jun 2007 18:03

Re: Größe eines Strings
 
Zitat:

Zitat von dr. love
Aaaaaaaa! Ich steh heute wirklich aufm Schlauch! Echt cool, dass ihr mir überhaupt noch weiterhelft... also reicht es jetzt einfach zu schrieben:

Delphi-Quellcode:
Stream.Write(s[0], Length(s));
?

Nö, dann erntest du nämlich Compiler-Fehler.

Liest du Tips eigentlich auch *ganz* durch?

mkinzler 24. Jun 2007 18:04

Re: Größe eines Strings
 
Delphi-Quellcode:
Stream.Write(s[1], Length(s));
reicht

dr. love 24. Jun 2007 18:05

Re: Größe eines Strings
 
okay, war n tippfehler... statt der 0 ne 1... aber sonst is das doch jetz korrekt oder nicht? :)

dr. love 24. Jun 2007 18:06

Re: Größe eines Strings
 
prima... es hat gedauert aber wenigstens funktionierts jetzt :wink: tausend dank an euch beide


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