![]() |
String > 255, oder anderer Datentyp
Hallo,
Ich hab folgendes Problem: Ich brauche einen String ohne Limit. Also das kann ich vergessen, zu klein
Code:
Das geht leider auch nicht, er erkennt TCaption nicht
procedure StrtoTZ(ZString : string; var zahl : TZahl);
Code:
Ich rufe die Procedure so auf
procedure StrtoTZ(ZString : TCaption; var zahl : TZahl);
Code:
Edit1.Text ist ja vom Typ TCaption...
StrtoTZ(Edit1.Text,zahl1);
|
Re: String > 255, oder anderer Datentyp
Versuchs mal mit einem AnsiString; :lol:
[Edit]Scheinbar gibt es den longstring nicht :gruebel: woher hab ich das dann?[/Edit] |
Re: String > 255, oder anderer Datentyp
Das ganze kann funktionieren, aber ich hab da noch ein anderes Problem
Wenn ich das ganze anders herum mache gibt's diese Fehlermeldung: "Types of actual and formal var parameters must be identical"
Code:
procedure TZtoStr(var ZString : ansistring; var zahl : TZahl);
... TZtoStr(Edit3.Text,erg); <-- in dieser Zeile |
Re: String > 255, oder anderer Datentyp
Man kann Properties leider nicht als Referenz übergeben :(
|
Re: String > 255, oder anderer Datentyp
Edit1.Text ist sicher kein AnsiString,
und sonst ist erg nicht vom Typ TZahl vielleicht klappt:
Delphi-Quellcode:
als 1. Parameter.
AnsiString(Edit1.Text)
|
Re: String > 255, oder anderer Datentyp
An dem asnistring kanns kaum liegen, denn das funktioniert:
Delphi-Quellcode:
ich würd einfach was anderes für TZahl verwenden...
procedure TForm1.Button1Click(Sender: TObject);
var hallo:AnsiString; begin hallo:=edit1.text; caption:=hallo; end; [edit]delphi code anstelle von code genommen[/edit] |
Re: String > 255, oder anderer Datentyp
Also ein bissl von jedem klappt...
Der AnsiString ist scheinbar ersteinmal lang genug... Am "erg" hat's nicht gelegen, das ist genz sicher vom Typ TZahl! Zitat:
Delphi-Quellcode:
Die Fehlermeldung kahm nämlich schon, als ich hier vor den "ZString" ein var gesetzt habe, nur hier konnte ich es wegmachen, was andersherum (TZtoStr) nicht möglich war, sopnst hätte es nicht funktioniert.
procedure StrtoTZ(ZString : string; var zahl : TZahl);
Gelöst habe ich es jetzt einfach mit einer Function, und zwar so:
Delphi-Quellcode:
function TZtoStr(zahl : TZahl):ansistring;
... Edit3.Text:=TZtoStr(erg); |
Re: String > 255, oder anderer Datentyp
Zitat:
|
Re: String > 255, oder anderer Datentyp
Ich denke, das reicht gerade so :wink:
Aber was ist denn jetzt eigentlich der Unterschied zwischen String und AnsiString??? |
Re: String > 255, oder anderer Datentyp
String kann sich von einer Delphi-Version zur anderen ändern, ist also ein sogenannter generischer Typenbezeichner (bzw. funktioniert so). Bei älteren Versionen war String noch identisch zu ShortString, in Delphi 7 sollte er aber zu AnsiString identisch sein, wenn nicht der entsprechende Kompilerschalter gesetzt ist.
Alles nachzulesen in der Delphi-Hilfe unter "String-Typen". |
Re: String > 255, oder anderer Datentyp
hmm. bei mir hat ein ganz normaler string keine "sichtbare" beschränkung:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var s: string; i: integer; begin s := ''; for i := 0 to 10000 do s := s + inttostr(i); Memo1.Text := s; end; |
Re: String > 255, oder anderer Datentyp
Zitat:
...:cat:... |
Re: String > 255, oder anderer Datentyp
Zitat:
Genügt das nicht??? type TZahl = int64;
Delphi-Quellcode:
Damit würde man einen immerhin 1GB großen string übergeben
procedure StrtoTZ(ZString : string; var zahl : TZahl);
begin end; procedure TForm1.Button1Click(Sender: TObject); var s: string; X: int64; begin SetLength(s, 1024 * 1024 * 1024); StrtoTZ(s, x); end; |
Re: String > 255, oder anderer Datentyp
Also ich hab gelesen, dass der "normale" String auf 255 Zeichen beschränkt ist, was sich am Beispiel "ShowMessage" zeigt:
Delphi-Quellcode:
Der ist beschränkt...
ShowMessage('<--Hier uber 255 Zeichen rein machen-->');
Ich muss zugeben, ich habe in einem Buch für Turbo Pascal nachgesehen, aber das obrige Beispiel zeigt dies auch, denke ich... Ich hab die ganze Geschichte jetzt nochmal mit einem "String" getestet, der macht Locker 500-1000 Zeichen mit! Ich dachte, ich müsste dann mit SetLength arbeiten, was ich allerdings nicht mache, ich mache eigentlich nur eine Zuweisung mit einem Edit.Text. Dann ist es ja jetzt egal, ob ich String oder AnsiString benutze... |
Re: String > 255, oder anderer Datentyp
Zitat:
...:cat:... |
Re: String > 255, oder anderer Datentyp
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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 by Thomas Breitkreuz