AGB  ·  Datenschutz  ·  Impressum  







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

Packed Records und Zeichenketten

Ein Thema von Neutral General · begonnen am 9. Jan 2008 · letzter Beitrag vom 9. Jan 2008
Antwort Antwort
Seite 2 von 2     12   
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#11

Re: Packed Records und Zeichenketten

  Alt 9. Jan 2008, 16:16
Zitat von Neutral General:
Achja... Kann den String nicht genau MaxInt Bytes groß machen...

Zitat:
[Error] Client.pas(24): Data type too large: exceeds 2 GB
:arrow: (quasi)

Delphi-Quellcode:
x := SizeOf(Record-String);
Text: array[1..MaxInt-x] of Char;
Niemand verschickt solche Daten "am Stück". Texte kann man zeilenweise verschicken, Binärdaten in Blöcken von 128 Bytes oder was geeignet ist. Meiner Ansicht nach ist ein String mit 2 GB in jedem Fall ein Fehler im Konzept.

Gruss Reinhard
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#12

Re: Packed Records und Zeichenketten

  Alt 9. Jan 2008, 16:19
Eben, deswegen wird der nie 2GB groß Lies mal meinen Beitrag aber böse Tricks mit dem Speichermanager weiter oben.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#13

Re: Packed Records und Zeichenketten

  Alt 9. Jan 2008, 17:39
Och, bei der Lösung ist man aber auch wieder eingeschränkt. Warum nicht einfach ein kleines Protokoll definieren? Beispiel:

1. Integer (4 Bytes) Länge der folgenden Zeichenkette
2. Zeichenkette in der Länge wie zuvor angegeben.

Delphi-Quellcode:
procedure SendString(AText: string);
var
  lLen: Integer;
begin
  lLen := length(AText);
  Socket.SendBuf(lLen, sizeof(lLen));
  if lLen > 0 then
    Socket.SendBuffer(AText[1], lLen);
end;
bzw. empfangen:

Delphi-Quellcode:
function ReceiveString: string;
var
  lLen: Integer;
begin
  Socket.ReceiveBuf(lLen, sizeof(lLen));
  if lLen > 0 then
  begin
    SetLength(Result, lLen);
    Socket.ReceiveBuf(result[1], lLen);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

Re: Packed Records und Zeichenketten

  Alt 9. Jan 2008, 19:27
@Muetze1: Klar. Aber das funktioniert nicht wenn der String in einem Record ist und man das ganze Record verschickt...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#15

Re: Packed Records und Zeichenketten

  Alt 9. Jan 2008, 19:48
Der Sinn hinter einem solchen Protokoll ist ja auch, eben nicht den gesamten Record zu verschicken, sondern die einzelnen Komponenten.
  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 10:21 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