bonjour je cherche a faire une comparaison d'un tableau (array contenant un record string) avec CompareMem(
voila un bout de mon prog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.