AGB  ·  Datenschutz  ·  Impressum  







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

String mehr als 255 Zeichen?

Ein Thema von Logic · begonnen am 13. Mär 2005 · letzter Beitrag vom 15. Mär 2005
Antwort Antwort
Benutzerbild von Logic
Logic

Registriert seit: 28. Nov 2003
132 Beiträge
 
Delphi 7 Personal
 
#1

String mehr als 255 Zeichen?

  Alt 13. Mär 2005, 14:43
Hallo, ich erhalte bei folgender Procedure:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var test:string;
begin
  test:='Bitte wählen sie die Spieleranzahl aus. Tragen Sie daraufhin in den erscheinenden Feldern Ihren Namen ein. Durch Aktivierung der automatischen Kampffunktion werden die Kämpfe automatisch ausgeführt und Sie erhalten nach Beendigung einen Bericht. Sollten Sie diese nicht aktivieren haben Sie die Möglichkeit selber zu würfeln. Sollten Sie die Hilfefunktion nicht benötigen, können Sie diese ebenfalls deaktivieren.';
  showmessage(test);
end;
Folgende Fehlermeldung:
Zitat:
String literals may have at most 255 elements
Also verstehn tu ich auch die Fehlermeldung, nur warum gehen in einen String nicht 255 Zeichen... ich dachte immer, dass ca. 2^(31) Zeichen da rein gehen? Welchen Datentyp muss ich denn dann benutzen?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: String mehr als 255 Zeichen?

  Alt 13. Mär 2005, 14:45
mach mal statt

'sadhfjksdf
sdfkj
sdf'

das da hin:

'sadhfjksdf'+
'sdfkj'+
'sdf'
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: String mehr als 255 Zeichen?

  Alt 13. Mär 2005, 14:45
es gehen auch mehr rein, aber der String den du definierst zur Zuweisung muss ja staatich mit in die exe kompiliert werden und für einen staatichen string ist das maximum 255. Du kannst das ganze volgendermaßen umgehen
Delphi-Quellcode:
var LStr: String;
begin
  LStr := 'Textteil1';
  LStr := LStr + 'Textteil2';
  [...]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: String mehr als 255 Zeichen?

  Alt 13. Mär 2005, 14:45
Du kannst im Code nicht mehr als 255 Zeichen am Stück hardgecodet angeben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#5

Re: String mehr als 255 Zeichen?

  Alt 14. Mär 2005, 10:30
Also, wenn man nach maximal 255 Zeichen ' + ' einfügt, dann kann man mehr "zusammenhängend" hardcoden - komischer Weise scheint da der Compiler keine Optimierung zu machen und versucht die ein Einzelstrings zusammenzufügen.

PS: auf diese Weise hannst du auch den Text schön übersichtlich auf mehrere Zeilen verteilen.


SirThornberry Methode geht auch, allerding ist dann dort in jeder Zeile LStr := LStr + mit drin.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var test:string;
begin
  test:='Bitte wählen sie die Spieleranzahl aus. Tragen Sie daraufhin in den ' +
    'erscheinenden Feldern Ihren Namen ein. Durch Aktivierung der automatischen ' +
    'Kampffunktion werden die Kämpfe automatisch ausgeführt und Sie erhalten nach ' +
    'Beendigung einen Bericht. Sollten Sie diese nicht aktivieren haben Sie die ' +
    'Möglichkeit selber zu würfeln. Sollten Sie die Hilfefunktion nicht benötigen, ' +
    'können Sie diese ebenfalls deaktivieren.';
  showmessage(test);
end;
Und mit ein paar Zeilenumbrüchen bei der Ausgabe könnte eventuell der User as sogar etwas besser lesen könen (nur so als Vorschlag):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var test:string;
begin
  test:='Bitte wählen sie die Spieleranzahl aus. Tragen Sie daraufhin in den ' +
    'erscheinenden Feldern Ihren Namen ein. '#13#10'Durch Aktivierung der ' +
    'automatischen Kampffunktion werden die Kämpfe automatisch ausgeführt und ' +
    'Sie erhalten nach Beendigung einen Bericht. '#13#10'Sollten Sie diese nicht ' +
    'aktivieren haben Sie die Möglichkeit selber zu würfeln. '13#10'Sollten Sie ' +
    'die Hilfefunktion nicht benötigen, können Sie diese ebenfalls deaktivieren.';
  showmessage(test);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#6

Re: String mehr als 255 Zeichen?

  Alt 14. Mär 2005, 20:33
Hallo!

Warum wird das denn als Variable deklariert? Der Text wird doch nicht verändert!

Das kann man doch auch so schreiben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const test='Bitte wählen sie die Spieleranzahl aus. Tragen Sie daraufhin in den ' +
    'erscheinenden Feldern Ihren Namen ein. '#13#10'Durch Aktivierung der ' +
    'automatischen Kampffunktion werden die Kämpfe automatisch ausgeführt und ' +
    'Sie erhalten nach Beendigung einen Bericht. '#13#10'Sollten Sie diese nicht ' +
    'aktivieren haben Sie die Möglichkeit selber zu würfeln. '13#10'Sollten Sie ' +
    'die Hilfefunktion nicht benötigen, können Sie diese ebenfalls deaktivieren.';
begin
  showmessage(test);
end;
Die Methode mit mehreren
test:=test+'***'; ist übrigens ein ziemlicher Performance-Killer, weil dann jedesmal die Variable neu belegt wird.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
Die 6 Probleme des Programmierers: 1. dauert das länger, als man 2. glaubt, 3. geht das nicht so, wie man sich das 4. schlau überlegt hat, und 5. sitzt der Fehler da, wo man ihn 6. zuletzt sucht
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: String mehr als 255 Zeichen?

  Alt 14. Mär 2005, 20:49
Zitat von Brüggendiek:
Die Methode mit mehreren
test:=test+'***'; ist übrigens ein ziemlicher Performance-Killer, weil dann jedesmal die Variable neu belegt wird.
Nicht, wenn Literale konkateniert (hui, 22 Uhr, da ist es Zeit für Fremdwörter ) werden. Kann der Compiler zur Compilierzeit schon die exakte Anzahl an Zeichen ermitteln, ist es egal, wie die Zeichen notiert sind, lediglich bei der Zuweisung zur Laufzeit macht es einen Unterschied.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

Re: String mehr als 255 Zeichen?

  Alt 15. Mär 2005, 09:28
Vielleicht wär es hier auch praktisch, nen resourcestring zu benutzen!?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:20 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