![]() |
Delphi String max 255. Zeichen???
Hallo
ich bin absolut neu in diesem Forum und hoffe dass man mr hier schnell helfen kann. Also mein Problem ist folgendes: Ich muss einen String bearbeiten können der bis zu 4000 Zeichen enthalten kann. Jzt ist es aber so das der String- datentyp nur 255 Zeichen enthalten kann. Ich habe mich erkundigt und erfahren, dass dies nur der Short-String ist. Jzt Habe ich meine Variable allerdings schon als Ansistring bzw als Pchar deklariert und es kommt immernoch die Fehlermeldung dass eine String-Literale maximal 255 Zeichen enthalten kann. Kann man mir helfen wenn ja wie. Danke schon mal im vorraus Ach ja ich arbeite mit delphi 5 Pro. [Ist zwar alt leistet aber gute dienste] cya Alexis |
Re: Delphi String max 255. Zeichen???
Normale Delphi-strings können bis zu 2^31 Zeichen belegen, falls ich mich nicht verlesen habe. Das bedeutet aber nicht, das man den String in der IDE direkt mit so vielen Zeichen belegen kann. In der IDE sind String-Literale (also die im Programmtext angegebenen String) maximal 255 Zeichen lang, längere Strings musst du an der 255. Stelle umbrechen.
Delphi-Quellcode:
MyString := '{250 Zeichen}12345' + '{mehr Zeichen}';
|
Re: Delphi String max 255. Zeichen???
Die Forensuche hätte dir auch schon helfen können.
Da Strings beim Kompilieren als ShortString's im Quellcode eingebettet werden (selbst wenn es an 'nen AnsiString / String übergeben wird), liegt die maximale Länge immer bei 255 Zeichen (OH > ShortString) Du kannst aber den String aufteilen
Delphi-Quellcode:
S := 'die ersten maximal 255 Zeichen' + 'und dann noch weitere';
Das ist ja eh besser, da dann der Code übersichtlicher wird, wenn du z.B. immer nur etwa 80 Zeichen zusammenhängend angibst und das nächte auf die nächte Zeile verlegst.
Delphi-Quellcode:
S := 'die ersten maximal 255 Zeichen' +
'und dann noch weitere' + 'und nochmal'; [add]immer der Dax ... willst wohl en Wettrennen veranstalten :cry: Ah ja ... 2^31 - 1 ist die maximale Länge :mrgreen: |
Re: Delphi String max 255. Zeichen???
Danke schonmal
aber es gibt da immernoch ein problem: Ich habe zwei Programme das 1. Schickt dieses Biest von String [4k+] uber den Clientsocket ab das kann ich evtl. umschreiben das eure Lösungen ausreichen aber das Problem liegt jzt im 2. Programm: Dieses muss nämlich das abgeschickte Biest mit hilfe des Server Socket annehmen und verabreiten wird das funktionieren?? |
Re: Delphi String max 255. Zeichen???
Zitat:
dann kann das prog.2 den stream verarbeiten, wie es ihm beliebt. und ein stream kann beliebige grösse haben. gruessle |
Re: Delphi String max 255. Zeichen???
Wenn du als Variablen den AnsiString/String verwendest ... JA.
Denn da hast du ja fast 2 GB Platz :zwinker: |
Re: Delphi String max 255. Zeichen???
das wird funktionieren. Das problem tritt eben nur auf wenn du im quelltext schon schreibst
Delphi-Quellcode:
wenn du aber
stringvariable = 'langer String über 255 zeichen';
Delphi-Quellcode:
schreibst gibt es kein Problem weil es eben erst zur laufzeit (also wenn das Programm ausgeführt wird) zugewiesen wird.
stringvarialble1 := stringvarialbe2;
|
Re: Delphi String max 255. Zeichen???
Danke das war genau das was ich hören wollte.
Jzt nur noch eine Allg. Frage. Wenn Informatiker die sich ent mit Delphi Auskennen von einem "normalen Bitstring" sprechen welchem Datentyp in delphi entspricht dieser "Normale Bitstring"??? ich ging davon aus dass es dem String-Datentyp entspricht. hatte ich recht??? Danke auch hierfür |
Re: Delphi String max 255. Zeichen???
Ich vermute mal Stream?
|
Re: Delphi String max 255. Zeichen???
und ich mus doch nochmal was fragen welcher Datentyp erfasst eigentlich Hexwerte????
|
Re: Delphi String max 255. Zeichen???
Zitat:
"Hexwerte" sind nur eine Darstellung von Daten. Genausogut könntest du sie binär, dezimal, oktal, als ASCII-Zeichen oder als ganz was anderes darstellen. |
Re: Delphi String max 255. Zeichen???
Hey,
also Hexwerte macht man normalerweise mit integers. Einfach var i : integer; begin i:= $FFFFFF; end; beim auslesen wird das dann eben wieder ein integer-wert. Willst du den Hexwert behalten kommst du um strings nicht rum, etwa so: s:= '$ffffff'; i:= StrToInt(s); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 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