AGB  ·  Datenschutz  ·  Impressum  







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

Klassen und Records streamen ?

Ein Thema von paule32.jk · begonnen am 6. Okt 2024 · letzter Beitrag vom 19. Okt 2024
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Klassen und Records streamen ?

  Alt 18. Okt 2024, 12:49
short string sind doch 255 Zeichen ?
und: String[5] - das ein Array of Char mit 5 Einträgen ?
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#12

AW: Klassen und Records streamen ?

  Alt 18. Okt 2024, 13:13
short string sind doch 255 Zeichen ?
und: String[5] - das ein Array of Char mit 5 Einträgen ?
String[n] definiert einen array von n+1 Ansichar, wobei das Element [0] die Länge des enthaltenen Textes als Byte enthält (kann weniger als n sein!) und der Text bei Index 1 beginnt. Der Typ Shortstring ist nur ein Alias für String[255].

Paule, Du solltest Dir wirklich mal die Mühe machen und den Delphi Language Guide durcharbeiten. Den gibt es auch in der offline-Hilfe, falls Du die installiert hast.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Klassen und Records streamen ?

  Alt 19. Okt 2024, 03:52
Hallo!

Wenn Du im Record keine dynamische Felder hast, kannst Du einfach den Record Binär senden.

Bei Strings oder DynArrays musst Du diese Felder einzelln senden.
Du kannst die RTTI dazu verwenden die Felder zu finden.

Short Strings in Records sind kein Problem.

Mavarik
Doch, sind sie: Wenn man RTTI verwenden will, darf man nicht sowas haben:

Delphi-Quellcode:
type
  MyRecord = record
    Name: string[5];
  end;
Dann bekommt man per RTTI für das Feld Name keine Angaben zum Typ.

Was aber geht ist:
Delphi-Quellcode:
type
  NameString = string[5];
type
  MyRecord = record
    Name: NameString;
  end;
Egal ob als Type oder direkt...

Die RTTI braucht man ja nur für nicht short string... Da der Rest ja in einem Rutsch geschrieben werden kann.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#14

AW: Klassen und Records streamen ?

  Alt 19. Okt 2024, 12:09
Wenn Du im Record keine dynamische Felder hast, kannst Du einfach den Record Binär senden.
Das habe ich mir schon lange abgewöhnt. Es gibt dafür immer ein LoadFromStream oder SaveToStream. Damit ist man wesentlich flexibler. Im Stream am Anfang noch eine Versionsnummer, dann bist du sogar abwärtskompatibel, wenn du den Record erweiterst.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:42 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