CompareMem( record et string
bonjour je cherche a faire une comparaison d'un tableau (array contenant un record string) avec CompareMem(
voila un bout de mon prog
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
type test=record
sv: String[255];
// sv: String;
iv:integer;
end;
var
s1,s2 : array[0..10] of test;
begin
fillchar(s1,sizeof(s1),0);
fillchar(s2,sizeof(s2),0);
s1[0].sv := 'test'; s1[0].iv := 30;
s2[0].sv := 'test'; s2[0].iv := 30;
if CompareMem(@s1[0], @s2[0], sizeof(test)) then writeln('same data');
s2[0].sv := 'tesx'; s2[0].iv := 30;
if not CompareMem(@s1[0], @s2[0], sizeof(test)) then writeln('different data');
writeln(inttostr(sizeof(test)));
Readln;
end. |
avec un string[255] cela fonctionne
mais quand je remplace string (ligne 10) a la place de String[255] cela ne fonctionne plus
le inttostr(sizeof(test))) dans le 1ere example est à 260 (sv: String[255])
le inttostr(sizeof(test))) dans le 2eme example est à 8 (sv: String)
pouvez-vous m'aider Merci.