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 string in record mit über 255 Zeichen? (https://www.delphipraxis.net/56387-string-record-mit-ueber-255-zeichen.html)

DGL-luke 4. Nov 2005 21:22


string in record mit über 255 Zeichen?
 
Hallo,

Ich hätt da mal ein Problemerl....

Und zwar will ich in einem record einen string haben. und zwar mit mehr als 255 Zeichen. So 1024 wären meine Kragenweite. Aber das geht ja nicht. Ich - nicht dumm ;) - mach mir sowas:

Delphi-Quellcode:
Text: array[0..1023] of char;
Wie kann ich da jetzt einigermaßen performant und schön(=wenig code) einen string zuweisen?

Oder geht das irgendwie anders, ohne mehrere Felder zu deklarieren (Text1,text2,text3,text4:string[255]) und trotzdem records verwenden zu können?

Grishnak 4. Nov 2005 21:24

Re: string in record mit über 255 Zeichen?
 
Was spricht gegen "Test: string;"?

himitsu 4. Nov 2005 21:25

Re: string in record mit über 255 Zeichen?
 
Die liebe Compilermagic hilft dir :mrgreen:

nimm dein CharArray und weise dem einfach mal 'nenm String zu ^^

Delphi-Quellcode:
Text := 'das ist ein String';

[add]
blödes rotes Kästchen, wo bist du?


@Grishnak:
dann ist der String aber nicht mehr im Array, sonder nur der Pointer daruf :zwinker:

DGL-luke 4. Nov 2005 21:30

Re: string in record mit über 255 Zeichen?
 
Das hab ich auch erst gedacht.... geht aber nicht :P

[Fehler] UMsgProtocol.pas(66): E2010 Inkompatible Typen: 'Array' und 'string'

Soviel zu Compilermagic.... :|

Ohne Literale hilft die auch nix mehr.

SirThornberry 4. Nov 2005 21:36

Re: string in record mit über 255 Zeichen?
 
nutze für sowas doch einfach "move"

malo 4. Nov 2005 21:38

Re: string in record mit über 255 Zeichen?
 
D7 PE:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
s: array[0..10] of char;
begin
  s := 'test';
end;
funktioniert.

DGL-luke 4. Nov 2005 21:43

Re: string in record mit über 255 Zeichen?
 
@malo:
Zitat:

Zitat von DGL-luke
Ohne Literale hilft die [Compilermagic] auch nix mehr.

@SirThornberry:

Ah, genau das habe ich gesucht. :)

Jetzt sag mir nur noch, wie genau ich das benutze....

Delphi-Quellcode:
size:=Min(length(MyString,1023));
Move(MyString,MyCharArray[0],size);
So?

Grishnak 4. Nov 2005 21:43

Re: string in record mit über 255 Zeichen?
 
Zitat:

Zitat von himitsu
...dann ist der String aber nicht mehr im Array, sonder nur der Pointer daruf

Ist mir bekannt! Aber: ist das ein Problem für DGL-Luke?

himitsu 4. Nov 2005 21:45

Re: string in record mit über 255 Zeichen?
 
hmmm, komisch, bei mir ging das mal?

ansonsten so
Delphi-Quellcode:
Var A: Arry[1..999] of Char;
  S: String;

// String > Array
Move(Pointer(S), @A, Length(S) + 1);


// Array > String
S := A;

// oder nochmal Array > String
S := PChar(@A);
(müste jedenfalls so in der Art funktionieren)

DGL-luke 4. Nov 2005 21:46

Re: string in record mit über 255 Zeichen?
 
@Grishnak: Ähm.... ja, durchaus, da würd ich nämlich äusserst blöd aus der Wächse schauen, wenn ich danach diesen Record speichern oder verschicken will und da immer nur 4 unverständliche bytes drinstünden.

@himitsu: danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr.
Seite 1 von 2  1 2      

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