AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Byte-Array per PByte übergeben

Ein Thema von MisterNiceGuy · begonnen am 25. Dez 2009 · letzter Beitrag vom 25. Dez 2009
Antwort Antwort
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

Byte-Array per PByte übergeben

  Alt 25. Dez 2009, 21:10
Hi, ich möchte einer Funktion einen Bytearray per PByte übergeben und dann als Array behandeln.
Hier meine Funktion:

Delphi-Quellcode:
function blubb(a:pbyte):integer;
begin
  a^[0] := 1;
end;
Jetzt bekomm ich aber einen Fehler in der Zeile, der besagt, dass ein Arraytyp erwartet wird.
Kann mir jemand helfen?
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Byte-Array per PByte übergeben

  Alt 25. Dez 2009, 21:13
Delphi-Quellcode:
type
  PByte = ^Byte; // dies ist so definiert

// Was du suchst sollte so aussehen:
  ByteArr = array of Byte;
  PByteArr = ^ByteArr;
Ansonsten, falls du echt PByte bekommst, caste einfach nach PByteArr, ala PByteArr(a).
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#3

Re: Byte-Array per PByte übergeben

  Alt 25. Dez 2009, 21:16
Hi Marcel, danke aber das bringt mich nicht wirklich weiter! Was ich brauche ist eine Lösung wie die eine Zeile die ich modifiziert habe
korrigiert werden kann sodass sie funktioniert. Ich kann leider nicht den Parameter oben ändern.
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Byte-Array per PByte übergeben

  Alt 25. Dez 2009, 21:21
Siehe mein Edit.

Delphi-Quellcode:
function blubb(a:pbyte):integer;
begin
  PByteArr(a)^[0] := 1;
end;
  Mit Zitat antworten Zitat
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Byte-Array per PByte übergeben

  Alt 25. Dez 2009, 21:24
Hi,

da aber dynamische Arrays bereits Pointer sind, schlage ich das vor:

Delphi-Quellcode:
function blubb(a:pbyte):integer;
begin
  TByteArr(a)[0] := 1;
end;
Ich benutze es in ähnlicher Weise selbst für das Sortieren beliebiger Array-Typen, wenn ich einfach nur nen Pointer als formalen Parameter in der Vergleichs-Funktion habe. Siehe dazu auch den Beitrag zu Shellsort für beliebige Arrays in der Code-Lib.

Gruß
Michael

[Edit] Du kannst dir type TByteArr = array of Byte auch zwischen dem Funktions-Kopf und begin lokal definieren, wenn das in deinem Fall sinnvoll ist. [/Edit]
"Man soll nie mehr essen als mit Gewalt reingeht!" (n.n.)
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#6

Re: Byte-Array per PByte übergeben

  Alt 25. Dez 2009, 21:44
Ah das hilft, vielen Dank euch beiden
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 04:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf