Sfoglia il codice sorgente

+ Renamed t001.pp to list.pp

michael 27 anni fa
parent
commit
1fc37f2025
1 ha cambiato i file con 99 aggiunte e 0 eliminazioni
  1. 99 0
      fcl/tests/list.pp

+ 99 - 0
fcl/tests/list.pp

@@ -0,0 +1,99 @@
+Program TestList;
+
+Uses objpas, classes;
+
+const a1 : pchar = '0';
+      a2 : pchar = '1';
+      a3 : pchar = '2';
+      a4 : pchar = '3';
+      a5 : pchar = '4';
+      a6 : pchar = '5';
+      a7 : pchar = '6';
+      a8 : pchar = '7';
+      a9 : pchar = '8';
+      a10 : pchar = '9'; 
+
+Var List : TList;
+    StartMem,Runner : longint;
+
+Function ACompare (P1,P2 : Pointer) : Integer;
+
+Type PByte = ^Byte;
+
+begin
+  Result:=PByte(p1)^-PByte(P2)^;
+end;
+    
+Procedure DumpMem;    
+
+begin
+  Writeln ('    Memavail : ',memavail,' (=',StartMem-Memavail,' Bytes lost).')
+end; 
+
+Procedure DumpList;
+
+Var I : longint;
+
+begin
+  Write ('Count/Capacity : ',List.Count,'/',List.Capacity);dumpmem;
+  If List.Count>0 then
+    begin
+    For i:=0 to List.Count-1 do 
+      if assigned(List.items[I]) then write (Pchar(List.items[i])) else write ('*');
+    Writeln;
+    end;
+end;
+
+
+begin
+  StartMem:=Memavail;
+  Writeln ('Creating List');
+  List:=TList.Create;
+  DumpList;
+  Writeln ('Increasing capacity to 10');
+  List.Capacity:=10;
+  DumpList;
+  Writeln ('Setting capacity to zero');
+  List.capacity:=0;
+  DumpList;
+  Writeln ('Adding 10 elements in random sequence.');
+  List.add (a2);
+  List.add (a1);
+  List.add (a3);
+  List.add (a8);
+  List.add (a5);
+  List.add (a9);
+  List.add (a4);
+  List.Add (a8);
+  List.Add (a7);
+  List.Add (a6);
+  Dumplist;
+  Writeln ('Removing Third element.');
+  List.Delete(2);
+  DumpList;
+  Writeln ('Inserting "0" at third place');
+  List.Insert (2,a1);
+  DumpList;
+  Writeln ('Setting elmts 3 to 6 to Nil.');
+  For Runner:=2 to 5 do List.Items[Runner]:=Nil;
+  Dumplist;
+  Writeln ('Packing list');
+  List.Pack;
+  DumpList;
+  Writeln ('Setting capacity to count');
+  List.Capacity:=List.Count;
+  DumpList;
+  Writeln ('Expanding list');
+  List.Expand;
+  DumpList;
+  Writeln ('Index of ',a1,' : ',List.IndexOf(a1));
+  Writeln ('Removing "',A1,'" from list.');
+  List.Remove (a1);
+  DumpList;
+  Writeln ('Sorting List.');
+  List.Sort (@ACompare);
+  DumpList;
+  Writeln ('Freeing list.');
+  List.Free;
+  DumpMem;
+end.