Seite 1 von 1

Suche Beispiel für Pointer

Verfasst: 19.01.2005 18:13
von Kukulkan
Hallo,

Ich reserviere einen Speicherbereich und möchte den Byteweise in einer Schleife durchgehen und bearbeiten. Anbei der aktuelle Code (vereinfacht):

Code: Alles auswählen

SourceBuffer.l = AllocateMemory(BufferSize.l)
Fox x.l = SourceBuffer.l To SourceBuffer.l + BufferSize.l
  Wert.b = PeekB(x.l) ; auslesen
  Wert.b = Wert.b / 2  ; durch 2 teilen
  PokeB(x.l, Wert.b)   ; zurückschreiben
Next
Ich weiss, dass das mit Pointern (also direktem Memory-Zugriff) sehr schnell gehen soll. Kann jemand mal so eine Schleife mit Memory-Zugriff durch Pointer zeigen, damit ich endlich kapier wie das geht?

PeekB() und PokeB() wie im Beispielcode angedeutet möchte ich vermeiden.

Danke,

Volker

Verfasst: 19.01.2005 19:01
von hardfalcon
Ein relativ gutes Pointer-Tutorial gibt auf purearea.net. Hast du dir das schon mal angesehen?

Verfasst: 20.01.2005 15:08
von ChaOsKid
hi Volker,

ich hab dein beispiel mal auf pointer umgestellt

Code: Alles auswählen

BufferSize = 5
SourceBuffer.l = AllocateMemory(BufferSize.l)
For *byte.BYTE = SourceBuffer.l To SourceBuffer.l + BufferSize.l
  Wert.b = *byte\b ; auslesen
  Wert.b = *byte\b / 2  ; durch 2 teilen
  *byte\b = Wert.b   ; zurückschreiben
Next
mfG
Tobi

Verfasst: 20.01.2005 16:20
von hardfalcon
@Chaoskid: Dein Avatar ist aber Fotomontage, oder ? :o Sieht cool aus! :allright:

Verfasst: 20.01.2005 17:03
von Kukulkan
Hi ChaOsKid.

Vielen Dank für das Beispiel. Ist ja recht Einfach!

Mann, manchmal sieht man den Code vor lauter Buchstaben nicht...

Vielen Dank!

Volker

Verfasst: 20.01.2005 17:21
von ChaOsKid
@hardfalcon
nö, nix fotomontage ;)
des bin ich am strand in spanien.
hier mal etwas grösser:
http://chaoskid.de/strandSpanien.jpg
oder hier in portugal:
http://chaoskid.de/strandPortugal.jpg

edit: (mehrere schreibfehler beseitigt) :roll:

@Franky
da is wirklich alles echt.

Verfasst: 20.01.2005 17:59
von Franky
Wow, echt nich? :o

Krass :o