AGB  ·  Datenschutz  ·  Impressum  







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

SetString aus dyn. Array

Ein Thema von sundance · begonnen am 28. Jan 2010 · letzter Beitrag vom 28. Jan 2010
 
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#1

SetString aus dyn. Array

  Alt 28. Jan 2010, 13:38
Hallo,

ich komme hier einfach nicht weiter...
Ich bin sicher, ihr könnt mir da helfen:

Ich habe ein dynamisches Array of Byte (Data), in dem im aktuellen Fall an Position Data[0] $00 steht, auf den folgenden Positionen stehen AnsiChar. Mein Plan war, diese Zeichen mit SetString() in eine AnsiString-Var zu kopieren:
Delphi-Quellcode:
...
type
  TBuffer = Array of Byte;
var
  Data: TBuffer;
  st: AnsiString;
  len: Integer;
begin
  (Stream.Read füllt das Array mit Daten; ist mit SetLength initialisiert)
  header := Data[0];
  len := Length(Data) - 1;
  SetString(st, Data[1], len); -> Incompatible types (OK)
  SetString(st, PChar(@Data[0]), len); -> kompiliert, liefert aber natürlich falsche Daten
  SetString(st, PChar(@Data[1]), len); -> EAccessViolation (?)
end;
...
Das Problem liegt an der Übergabe der Source von SetString.
Was ist hier falsch? Wenn ich das richtig verstehe, ist "Data" ja der Zeiger auf das dyn. Array; Data[1] zeigt auf das zweite Zeichen im Array und SetString will einen PChar auf die Startadresse...

.sundance.
  Mit Zitat antworten Zitat
 


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:15 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