Browse Source

+ Added latest files from fixbranch

michael 25 năm trước cách đây
mục cha
commit
404e950ed4

+ 2 - 1
docs/refex/Makefile

@@ -39,7 +39,8 @@ OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 \
         ex54 ex55 ex56 ex57 ex58 ex59 ex60 ex61 ex62 ex63 ex64 ex65 ex66 \
         ex67 ex68 ex69 ex70 ex71 ex72 ex73 ex74 ex75 ex76 ex77 ex78 ex79 \
 	ex80 ex81 ex82 ex83 ex84 ex85 ex86 ex87 ex88 ex89 \
-	ex90 ex91 ex92 ex93 ex94 ex95 ex96 ex97 ex98
+	ex90 ex91 ex92 ex93 ex94 ex95 ex96 ex97 ex98 ex99 ex100 ex101 ex102\
+        ex103 ex104 ex105 ex106 ex107 ex108 ex109
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 

+ 11 - 0
docs/refex/README

@@ -101,3 +101,14 @@ ex95.pp contains an example of the SetResourceStrings function.
 ex96.pp contains an example of the Assigned function.
 ex97.pp contains an example of the StringOfChar function.
 ex98.pp contains an example of the exitproc function.
+ex99.pp contains an example of the CompareByte function.
+ex100.pp contains an example of the CompareChar function.
+ex101.pp contains an example of the CompareDWord function.
+ex102.pp contains an example of the CompareWord function.
+ex103.pp contains an example of the FillByte function
+ex104.pp contains an example of the FillDWord function
+ex105.pp contains an example of the IndexByte function.
+ex106.pp contains an example of the IndexWord function.
+ex107.pp contains an example of the IndexDWord function.
+ex108.pp contains an example of the IndexChar function.
+ex109.pp contains an example of the MoveChar0 function.

+ 54 - 0
docs/refex/ex100.pp

@@ -0,0 +1,54 @@
+Program Example100;
+
+{ Program to demonstrate the CompareChar function. }
+
+Const 
+  ArraySize     = 100;
+  HalfArraySize = ArraySize Div 2;
+  
+Var 
+  Buf1,Buf2 : Array[1..ArraySize] of char;
+  I : longint;
+  
+  Procedure CheckPos(Len : Longint);
+  
+  Begin
+    Write('First ',Len,' characters are ');
+    if CompareChar(Buf1,Buf2,Len)<>0 then
+      Write('NOT ');
+    Writeln('equal');  
+  end;
+
+  Procedure CheckNullPos(Len : Longint);
+  
+  Begin
+    Write('First ',Len,' non-null characters are ');
+    if CompareChar0(Buf1,Buf2,Len)<>0 then
+      Write('NOT ');
+    Writeln('equal');  
+  end;
+
+begin
+  For I:=1 to ArraySize do
+    begin
+    Buf1[i]:=chr(I);
+    If I<=HalfArraySize Then
+      Buf2[I]:=chr(I)
+    else
+      Buf2[i]:=chr(HalfArraySize-I);
+    end; 
+  CheckPos(HalfArraySize div 2);
+  CheckPos(HalfArraySize);
+  CheckPos(HalfArraySize+1);
+  CheckPos(HalfArraySize + HalfArraySize Div 2);
+  For I:=1 to 4 do
+    begin
+    buf1[Random(ArraySize)+1]:=Chr(0);
+    buf2[Random(ArraySize)+1]:=Chr(0);
+    end;
+  Randomize;  
+  CheckNullPos(HalfArraySize div 2);
+  CheckNullPos(HalfArraySize);
+  CheckNullPos(HalfArraySize+1);
+  CheckNullPos(HalfArraySize + HalfArraySize Div 2);
+end.

+ 36 - 0
docs/refex/ex101.pp

@@ -0,0 +1,36 @@
+Program Example101;
+
+{ Program to demonstrate the CompareDWord function. }
+
+Const 
+  ArraySize     = 100;
+  HalfArraySize = ArraySize Div 2;
+  
+Var 
+  Buf1,Buf2 : Array[1..ArraySize] of Dword;
+  I : longint;
+  
+  Procedure CheckPos(Len : Longint);
+  
+  Begin
+    Write('First ',Len,' DWords are ');
+    if CompareDWord(Buf1,Buf2,Len)<>0 then
+      Write('NOT ');
+    Writeln('equal');  
+  end;
+
+
+begin
+  For I:=1 to ArraySize do
+    begin
+    Buf1[i]:=I;
+    If I<=HalfArraySize Then
+      Buf2[I]:=I
+    else
+      Buf2[i]:=HalfArraySize-I;
+    end; 
+  CheckPos(HalfArraySize div 2);
+  CheckPos(HalfArraySize);
+  CheckPos(HalfArraySize+1);
+  CheckPos(HalfArraySize + HalfArraySize Div 2);
+end.

+ 36 - 0
docs/refex/ex102.pp

@@ -0,0 +1,36 @@
+Program Example102;
+
+{ Program to demonstrate the CompareWord function. }
+
+Const 
+  ArraySize     = 100;
+  HalfArraySize = ArraySize Div 2;
+  
+Var 
+  Buf1,Buf2 : Array[1..ArraySize] of Word;
+  I : longint;
+  
+  Procedure CheckPos(Len : Longint);
+  
+  Begin
+    Write('First ',Len,' words are ');
+    if CompareWord(Buf1,Buf2,Len)<>0 then
+      Write('NOT ');
+    Writeln('equal');  
+  end;
+
+
+begin
+  For I:=1 to ArraySize do
+    begin
+    Buf1[i]:=I;
+    If I<=HalfArraySize Then
+      Buf2[I]:=I
+    else
+      Buf2[i]:=HalfArraySize-I;
+    end; 
+  CheckPos(HalfArraySize div 2);
+  CheckPos(HalfArraySize);
+  CheckPos(HalfArraySize+1);
+  CheckPos(HalfArraySize + HalfArraySize Div 2);
+end.

+ 17 - 0
docs/refex/ex103.pp

@@ -0,0 +1,17 @@
+Program Example103;
+
+{ Program to demonstrate the FillByte function. }
+
+Var S : String[10];
+    I : Byte;
+
+begin
+  For i:=10 downto 0 do
+    begin
+    { Fill S with i bytes }
+    FillChar (S,SizeOf(S),32);
+    { Set Length }
+    SetLength(S,I);
+    Writeln (s,'*');
+    end;
+end.

+ 17 - 0
docs/refex/ex104.pp

@@ -0,0 +1,17 @@
+Program Example104;
+
+{ Program to demonstrate the FillDWord function. }
+
+Const 
+  ArraySize = 1000;
+
+Var
+  S : Array [1..ArraySize] of DWord;
+  I : longint;
+  
+begin
+  FillDWord(S,ArraySize,0);
+  For I:=1 to ArraySize do
+    If S[i]<>0 then 
+      Writeln('Position ',i,' not zeroed out');
+end.

+ 27 - 0
docs/refex/ex105.pp

@@ -0,0 +1,27 @@
+Program Example105;
+
+{ Program to demonstrate the IndexByte function. }
+
+Const
+  ArraySize = 256;
+  MaxValue = 256;
+  
+Var
+  Buffer : Array[1..ArraySize] of Byte; 
+  I,J : longint;
+  K : Byte;
+  
+begin
+  Randomize;
+  For I:=1 To ArraySize do 
+    Buffer[I]:=Random(MaxValue);
+  For I:=1 to 10 do
+    begin
+    K:=Random(MaxValue);
+    J:=IndexByte(Buffer,ArraySize,K);
+    if J=-1 then
+      Writeln('Value ',K,' was not found in buffer.')
+    else
+      Writeln('Found ',K,' at position ',J,' in buffer');
+    end;  
+end.

+ 27 - 0
docs/refex/ex106.pp

@@ -0,0 +1,27 @@
+Program Example106;
+
+{ Program to demonstrate the IndexDWord function. }
+
+Const
+  ArraySize = 1000;
+  MaxValue = 1000;
+  
+Var
+  Buffer : Array[1..ArraySize] of DWord; 
+  I,J : longint;
+  K : DWord;
+  
+begin
+  Randomize;
+  For I:=1 To ArraySize do 
+    Buffer[I]:=Random(MaxValue);
+  For I:=1 to 10 do
+    begin
+    K:=Random(MaxValue);
+    J:=IndexDWord(Buffer,ArraySize,K);
+    if J=-1 then
+      Writeln('Value ',K,' was not found in buffer.')
+    else
+      Writeln('Found ',K,' at position ',J,' in buffer');
+    end;  
+end.

+ 27 - 0
docs/refex/ex107.pp

@@ -0,0 +1,27 @@
+Program Example107;
+
+{ Program to demonstrate the IndexWord function. }
+
+Const
+  ArraySize = 1000;
+  MaxValue = 1000;
+  
+Var
+  Buffer : Array[1..ArraySize] of Word; 
+  I,J : longint;
+  K : Word;
+  
+begin
+  Randomize;
+  For I:=1 To ArraySize do 
+    Buffer[I]:=Random(MaxValue);
+  For I:=1 to 10 do
+    begin
+    K:=Random(MaxValue);
+    J:=IndexWord(Buffer,ArraySize,K);
+    if J=-1 then
+      Writeln('Value ',K,' was not found in buffer.')
+    else
+      Writeln('Found ',K,' at position ',J,' in buffer');
+    end;  
+end.

+ 27 - 0
docs/refex/ex108.pp

@@ -0,0 +1,27 @@
+Program Example108;
+
+{ Program to demonstrate the IndexChar function. }
+
+Const
+  ArraySize = 1000;
+  MaxValue = 26;
+  
+Var
+  Buffer : Array[1..ArraySize] of Char; 
+  I,J : longint;
+  K : Char;
+  
+begin
+  Randomize;
+  For I:=1 To ArraySize do 
+    Buffer[I]:=chr(Ord('A')+Random(MaxValue));
+  For I:=1 to 10 do
+    begin
+    K:=chr(Ord('A')+Random(MaxValue));
+    J:=IndexChar(Buffer,ArraySize,K);
+    if J=-1 then
+      Writeln('Value ',K,' was not found in buffer.')
+    else
+      Writeln('Found ',K,' at position ',J,' in buffer');
+    end;  
+end.

+ 19 - 0
docs/refex/ex109.pp

@@ -0,0 +1,19 @@
+Program Example109;
+
+{ Program to demonstrate the MoveChar0 function. }
+
+Var 
+  Buf1,Buf2 : Array[1..80] of char;
+  I : longint;
+    
+begin
+  Randomize;
+  For I:=1 to 80 do
+    Buf1[i]:=chr(Random(16)+Ord('A'));
+  Writeln('Original buffer');
+  writeln(Buf1);
+  Buf1[Random(80)+1]:=#0;
+  MoveChar0(Buf1,Buf2,80);  
+  Writeln('Randomly zero-terminated Buffer');
+  Writeln(Buf2);
+end.

+ 36 - 0
docs/refex/ex99.pp

@@ -0,0 +1,36 @@
+Program Example99;
+
+{ Program to demonstrate the CompareByte function. }
+
+Const 
+  ArraySize     = 100;
+  HalfArraySize = ArraySize Div 2;
+  
+Var 
+  Buf1,Buf2 : Array[1..ArraySize] of byte;
+  I : longint;
+  
+  Procedure CheckPos(Len : Longint);
+  
+  Begin
+    Write('First ',Len,' positions are ');
+    if CompareByte(Buf1,Buf2,Len)<>0 then
+      Write('NOT ');
+    Writeln('equal');  
+  end;
+
+
+begin
+  For I:=1 to ArraySize do
+    begin
+    Buf1[i]:=I;
+    If I<=HalfArraySize Then
+      Buf2[I]:=I
+    else
+      Buf2[i]:=HalfArraySize-I;
+    end; 
+  CheckPos(HalfArraySize div 2);
+  CheckPos(HalfArraySize);
+  CheckPos(HalfArraySize+1);
+  CheckPos(HalfArraySize + HalfArraySize Div 2);
+end.