Wenn ich so einen Record habe (siehe unten), wie kann ich auf dem Direkt im Speicher zugreifen?
Delphi-Quellcode:
PDateiListRec = ^TDateiListRec;
TDateiListRec = packed record
SRec : TSearchRec; //SysUtils
Pfad : string;
DateiName : string;
Ext : string;
DestPfad : string;
DestDateiName : string;
DestExt : string;
CRC64Calc : int64;
Duplikat : boolean;
Error : boolean;
Change : boolean;
DateTime : TDateTime;
DuplikatIndex : integer;
Select : boolean;
Index : word;
end;
var
S1,S2 : TdateiListRec;
Was ich machen möchte ist folgendes.
if S1 = S2
then Label1.Caption := 'true'
else Label1.Caption := 'false'
Das geht so nicht!
Ich möchte den Ganzen Record in ggf. ein array of byte speichern um ihn mit dann zu vergleichen. Ich könnte die ganzen Namen nehmen und diese Umwandeln und dann diese Speichern. Das ist naja.
So in der Form von
For I := 1 to length(S1.Dateiname) …
Buf1[0] := S1.Dateiname[I]; usw.
Diese geht - natürlich.
Ich möchte den Speicher mit Move Kopieren (länge kann ich ermittel) etwa so. Nur das geht auch nicht.
Delphi-Quellcode:
function Dh_ByteCompare(AB1,AB2:pointer;AL1,AL2:word):boolean;
var
Buf1 : array[0..1255] of char;
Buf2 : array[0..1255] of char;
begin
Move(AB1^,Buf1,SizeOf(Buf1));
Move(AB2^,Buf2,SizeOf(Buf2));
End;
Aufruf:
Dh_ByteCompare(@S1,@S2,L1=XX,L2=XX);
Ich hoffe ich habe mich klar ausgedrück
Wenn man nicht weiß was man sucht, findet man auch mit Google nichts.
Bevor ich hier eine Frage stelle, wurde Google vorher befragt. Hinweise dieser Art kann man sich schenken. Im übrigen muss mir niemand antworten.