Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Verschieben in einem Speicherbereich. (https://www.delphipraxis.net/57094-verschieben-einem-speicherbereich.html)

Chewie 15. Nov 2005 19:17

Re: Verschieben in einem Speicherbereich.
 
Was ist den XY? Dein Record?
Falls ja: Bei dem Record musst du natürlich einen Zeiger darauf übergeben. Beim String musst du das nur nicht tun, da es tatsächlich schon ein Zeiger ist. Nur wird dir durch die Compiler-Magic was andres vorgegaukelt.

shifter 15. Nov 2005 19:29

Re: Verschieben in einem Speicherbereich.
 
:gruebel: Also ich denke so :

Delphi-Quellcode:
Type _SIGN = Record
  h : String[32];
  typ : Byte ;
  comp : Boolean;
End;
p_sign = ^_sign;

Var
   Po  : p_sign;
   Sign : _SIGN;
   buf : Array [0.511] of Byte;

Begin

   FillMemory( @buf, 512, 0 );
   MoveMemory( @buf, po , Sizeof( SIGN ));

...
Ich bin aber mit dem ergebnis nicht 100% sicher :
Nach jedem versicht ohne irgend etwas zu ändern sieht der ergebnis anders aus :gruebel:

gruss
seba

Chewie 15. Nov 2005 19:35

Re: Verschieben in einem Speicherbereich.
 
Zeig mal den Code, wo du po initialisierst.

shifter 15. Nov 2005 19:44

Re: Verschieben in einem Speicherbereich.
 
:shock:

Meinst Du :
Delphi-Quellcode:

  po := @sign;
Delphi-Quellcode:
Type _SIGN = Record
  h : String[32];
  typ : Byte ;
  comp : Boolean;
End;
p_sign = ^_sign;

Var
   Po  : p_sign;
   Sign : _SIGN;
   buf : Array [0.511] of Byte;

Begin
  sign.h :='blabla';

   po := @sign;
   FillMemory( @buf, 512, 0 );
   MoveMemory( @buf, po , Sizeof( SIGN ));

...
Wenn ich es so mache ist der ergebniss immer noch nicht ganz ok,
oder ich habe vieleicht andere vorstellung von der erg. :gruebel:

shifter 15. Nov 2005 19:49

Re: Verschieben in einem Speicherbereich.
 
OK ich habe geschaft :lol:

oder besse gesaht wir haben geschaft.

Ich habe Stat:
Delphi-Quellcode:
Type _SIGN = Record
  h : String[32];
  typ : Byte ;
  comp : Boolean;
End;
So Gemacht :
Delphi-Quellcode:
Type _SIGN = Record
  h : String;
  typ : Byte ;
  comp : Boolean;
End;
Und das hat die geschichte ausser bahn geworfen.

Gruss
seba

Chewie 15. Nov 2005 19:50

Re: Verschieben in einem Speicherbereich.
 
Ein hoch auf den roten Kasten...

Gut.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz