Delphi Code Formatting Demo


FormatCode Code Formatter is based on serveral powerful syntax parser engines so you can exactly control the appearance of your source code. Here is the code formatting demo of FormatCode Delphi Code Formatter to prove the ability of code formatting functions of FormatCode:

   { Before Code Formatting }

   unit MD5;interface uses SysUtils;type TMD5Context=record State:array[0..3]of
   Longint;Count:array[0..1]of Longint;case Integer of 0:(BufChar:array[0..63]of
   Byte);1:(BufLong:array[0..15]of Longint);end;TMD5Digest=array[0..15]of Char;
   procedure MD5Init(var MD5Context:TMD5Context);procedure MD5Update(var MD5Context
   :TMD5Context;const Data;Len:Integer);procedure MD5Transform(var Buf:array of
   Longint;const Data:array of Longint);procedure MD5UpdateBuffer(var MD5Context:
   TMD5Context;Buffer:Pointer;BufSize:Integer);procedure MD5Final(var Digest:
   TMD5Digest;var MD5Context:TMD5Context);function GetMD5(Buffer:Pointer;BufSize:
   Integer):string;function StrMD5(Buffer:string):string;implementation const
   MaxBufSize=16384;type PMD5Buffer= ^TMD5Buffer;TMD5Buffer=array[0..(MaxBufSize-1)
   ]of Char;procedure MD5Init(var MD5Context:TMD5Context);begin FillChar(MD5Context
   ,SizeOf(TMD5Context),#0);with MD5Context do begin State[0]:=Longint($67452301);
   State[1]:=Longint($EFCDAB89);State[2]:=Longint($98BADCFE);State[3]:=Longint(
   $10325476);end end;procedure MD5Update(var MD5Context:TMD5Context;const Data;Len
   :Integer);type TByteArray=array[0..0]of Byte;var Index:Word;T:Longint;begin with
    MD5Context do begin T:=Count[0];Inc(Count[0],Longint(Len)shl 3);if Count[0]<T
   then Inc(Count[1]);Inc(Count[1],Len shr 29);T:=(T shr 3)and$3F;Index:=0;if T<>0
   then begin Index:=T;T:=64-T;if Len<T then begin Move(Data,BufChar[Index],Len);
   Exit;end;Move(Data,BufChar[Index],T);MD5Transform(State,BufLong);Dec(Len,T);
   Index:=T;end;while Len>=64 do begin Move(TByteArray(Data)[Index],BufChar,64);
   MD5Transform(State,BufLong);Inc(Index,64);Dec(Len,64);end;Move(TByteArray(Data)[
   Index],BufChar,Len);end end;procedure MD5Final(var Digest:TMD5Digest;var
   MD5Context:TMD5Context);var Cnt:Word;P:Byte;begin with MD5Context do begin Cnt:=
   (Count[0]shr 3)and$3F;P:=Cnt;BufChar[P]:=$80;Inc(P);Cnt:=64-1-Cnt;if Cnt<8 then
   begin FillChar(BufChar[P],Cnt,#0);MD5Transform(State,BufLong);FillChar(BufChar,
   56,#0);end else FillChar(BufChar[P],Cnt-8,#0);BufLong[14]:=Count[0];BufLong[15]
   :=Count[1];MD5Transform(State,BufLong);Move(State,Digest,16)end;FillChar(
   MD5Context,SizeOf(TMD5Context),#0)end;procedure MD5Transform(var Buf:array of
   Longint;const Data:array of Longint);var A,B,C,D:Longint;procedure Round1(var W:
   Longint;X,Y,Z,Data:Longint;S:Byte);begin Inc(W,(Z xor(X and(Y xor Z)))+Data);W:=
   (W shl S)or(W shr(32-S));Inc(W,X)end;procedure Round2(var W:Longint;X,Y,Z,Data:
   Longint;S:Byte);begin Inc(W,(Y xor(Z and(X xor Y)))+Data);W:=(W shl S)or(W shr(
   32-S));Inc(W,X)end;procedure Round3(var W:Longint;X,Y,Z,Data:Longint;S:Byte);
   begin Inc(W,(X xor Y xor Z)+Data);W:=(W shl S)or(W shr(32-S));Inc(W,X)end;
   procedure Round4(var W:Longint;X,Y,Z,Data:Longint;S:Byte);begin Inc(W,(Y xor(X
   or not Z))+Data);W:=(W shl S)or(W shr(32-S));Inc(W,X)end;begin A:=Buf[0];B:=Buf[
   1];C:=Buf[2];D:=Buf[3];Round1(A,B,C,D,Data[0]+Longint($d76aa478),7);Round1(D,A,B
   ,C,Data[1]+Longint($e8c7b756),12);Round1(C,D,A,B,Data[2]+Longint($242070db),17);
   Round1(B,C,D,A,Data[3]+Longint($c1bdceee),22);Round1(A,B,C,D,Data[4]+Longint(
   $f57c0faf),7);Round1(D,A,B,C,Data[5]+Longint($4787c62a),12);Round1(C,D,A,B,Data[
   6]+Longint($a8304613),17);Round1(B,C,D,A,Data[7]+Longint($fd469501),22);Round1(A
   ,B,C,D,Data[8]+Longint($698098d8),7);Round1(D,A,B,C,Data[9]+Longint($8b44f7af),
   12);Round1(C,D,A,B,Data[10]+Longint($ffff5bb1),17);Round1(B,C,D,A,Data[11]+
   Longint($895cd7be),22);Round1(A,B,C,D,Data[12]+Longint($6b901122),7);Round1(D,A,
   B,C,Data[13]+Longint($fd987193),12);Round1(C,D,A,B,Data[14]+Longint($a679438e),
   17);Round1(B,C,D,A,Data[15]+Longint($49b40821),22);Round2(A,B,C,D,Data[1]+
   Longint($f61e2562),5);Round2(D,A,B,C,Data[6]+Longint($c040b340),9);Round2(C,D,A,
   B,Data[11]+Longint($265e5a51),14);Round2(B,C,D,A,Data[0]+Longint($e9b6c7aa),20);
   Round2(A,B,C,D,Data[5]+Longint($d62f105d),5);Round2(D,A,B,C,Data[10]+Longint(
   $02441453),9);Round2(C,D,A,B,Data[15]+Longint($d8a1e681),14);Round2(B,C,D,A,Data
   [4]+Longint($e7d3fbc8),20);Round2(A,B,C,D,Data[9]+Longint($21e1cde6),5);Round2(D
   ,A,B,C,Data[14]+Longint($c33707d6),9);Round2(C,D,A,B,Data[3]+Longint($f4d50d87),
   14);Round2(B,C,D,A,Data[8]+Longint($455a14ed),20);Round2(A,B,C,D,Data[13]+
   Longint($a9e3e905),5);Round2(D,A,B,C,Data[2]+Longint($fcefa3f8),9);Round2(C,D,A,
   B,Data[7]+Longint($676f02d9),14);Round2(B,C,D,A,Data[12]+Longint($8d2a4c8a),20);
   Round3(A,B,C,D,Data[5]+Longint($fffa3942),4);Round3(D,A,B,C,Data[8]+Longint(
   $8771f681),11);Round3(C,D,A,B,Data[11]+Longint($6d9d6122),16);Round3(B,C,D,A,
   Data[14]+Longint($fde5380c),23);Round3(A,B,C,D,Data[1]+Longint($a4beea44),4);
   Round3(D,A,B,C,Data[4]+Longint($4bdecfa9),11);Round3(C,D,A,B,Data[7]+Longint(
   $f6bb4b60),16);Round3(B,C,D,A,Data[10]+Longint($bebfbc70),23);Round3(A,B,C,D,
   Data[13]+Longint($289b7ec6),4);Round3(D,A,B,C,Data[0]+Longint($eaa127fa),11);
   Round3(C,D,A,B,Data[3]+Longint($d4ef3085),16);Round3(B,C,D,A,Data[6]+Longint(
   $04881d05),23);Round3(A,B,C,D,Data[9]+Longint($d9d4d039),4);Round3(D,A,B,C,Data[
   12]+Longint($e6db99e5),11);Round3(C,D,A,B,Data[15]+Longint($1fa27cf8),16);Round3
   (B,C,D,A,Data[2]+Longint($c4ac5665),23);Round4(A,B,C,D,Data[0]+Longint($f4292244
   ),6);Round4(D,A,B,C,Data[7]+Longint($432aff97),10);Round4(C,D,A,B,Data[14]+
   Longint($ab9423a7),15);Round4(B,C,D,A,Data[5]+Longint($fc93a039),21);Round4(A,B,
   C,D,Data[12]+Longint($655b59c3),6);Round4(D,A,B,C,Data[3]+Longint($8f0ccc92),10)
   ;Round4(C,D,A,B,Data[10]+Longint($ffeff47d),15);Round4(B,C,D,A,Data[1]+Longint(
   $85845dd1),21);Round4(A,B,C,D,Data[8]+Longint($6fa87e4f),6);Round4(D,A,B,C,Data[
   15]+Longint($fe2ce6e0),10);Round4(C,D,A,B,Data[6]+Longint($a3014314),15);Round4(
   B,C,D,A,Data[13]+Longint($4e0811a1),21);Round4(A,B,C,D,Data[4]+Longint($f7537e82
   ),6);Round4(D,A,B,C,Data[11]+Longint($bd3af235),10);Round4(C,D,A,B,Data[2]+
   Longint($2ad7d2bb),15);Round4(B,C,D,A,Data[9]+Longint($eb86d391),21);Inc(Buf[0],
   A);Inc(Buf[1],B);Inc(Buf[2],C);Inc(Buf[3],D);end;procedure MD5UpdateBuffer(var
   MD5Context:TMD5Context;Buffer:Pointer;BufSize:Integer);var BufTmp:PMD5Buffer;
   BufPtr:PChar;Bytes:Word;begin New(BufTmp);BufPtr:=Buffer;try repeat if BufSize>
   MaxBufSize then Bytes:=MaxBufSize else Bytes:=BufSize;Move(BufPtr^,BufTmp^,Bytes
   );Inc(BufPtr,Bytes);Dec(BufSize,Bytes);if Bytes>0 then MD5Update(MD5Context,
   BufTmp^,Bytes);until Bytes<MaxBufSize;finally Dispose(BufTmp);end;end;function
   GetMD5(Buffer:Pointer;BufSize:Integer):string;var I:Integer;MD5Digest:TMD5Digest
   ;MD5Context:TMD5Context;begin for I:=0 to 15 do Byte(MD5Digest[I]):=I+1;MD5Init(
   MD5Context);MD5UpdateBuffer(MD5Context,Buffer,BufSize);MD5Final(MD5Digest,
   MD5Context);Result:='';for I:=0 to 15 do Result:=Result+IntToHex(Byte(MD5Digest[
   I]),2);end;function StrMD5(Buffer:string):string;begin Result:=GetMD5(@Buffer[1]
   ,Length(Buffer));end;end.


   { After Code Formatting }

   unit MD5;

   interface

   uses
     SysUtils;

   type
     TMD5Context = record
       State: array[0..3] of Longint;
       Count: array[0..1] of Longint;
       case Integer of
         0: (BufChar: array[0..63] of Byte);
         1: (BufLong: array[0..15] of Longint);
       end;

     TMD5Digest = array[0..15] of Char;

   procedure MD5Init(var MD5Context: TMD5Context);
   procedure MD5Update(var MD5Context: TMD5Context; const Data; Len: Integer);
   procedure MD5Transform(var Buf: array of
     Longint; const Data: array of Longint);
   procedure MD5UpdateBuffer(var MD5Context: TMD5Context;
     Buffer: Pointer; BufSize: Integer);
   procedure MD5Final(var Digest: TMD5Digest; var MD5Context: TMD5Context);
   function GetMD5(Buffer: Pointer; BufSize: Integer): string;
   function StrMD5(Buffer: string): string;

   implementation
   
   const
     MaxBufSize = 16384;

   type
     PMD5Buffer = ^TMD5Buffer;
     TMD5Buffer = array[0..(MaxBufSize - 1)] of Char;

   procedure MD5Init(var MD5Context: TMD5Context);
   begin
     FillChar(MD5Context, SizeOf(TMD5Context), #0);
     with MD5Context do
     begin
       State[0] := Longint($67452301);
       State[1] := Longint($EFCDAB89);
       State[2] := Longint($98BADCFE);
       State[3] := Longint($10325476);
     end
   end;

   procedure MD5Update(var MD5Context: TMD5Context; const Data; Len: Integer);
   type
     TByteArray = array[0..0] of Byte;
   var
     Index: Word;
     T: Longint;
   begin
     with
     MD5Context do
     begin
       T := Count[0];
       Inc(Count[0], Longint(Len) shl 3);
       if Count[0] < T then
         Inc(Count[1]);
       Inc(Count[1], Len shr 29);
       T     := (T shr 3) and $3F;
       Index := 0;
       if T <> 0 then
       begin
         Index := T;
         T     := 64 - T;
         if Len < T then
         begin
           Move(Data, BufChar[Index], Len);
           Exit;
         end;
         Move(Data, BufChar[Index], T);
         MD5Transform(State, BufLong);
         Dec(Len, T);
         Index := T;
       end;
       while Len >= 64 do
       begin
         Move(TByteArray(Data)[Index], BufChar, 64);
         MD5Transform(State, BufLong);
         Inc(Index, 64);
         Dec(Len, 64);
       end;
       Move(TByteArray(Data)[Index], BufChar, Len);
     end
   end;

   procedure MD5Final(var Digest: TMD5Digest; var MD5Context: TMD5Context);
   var
     Cnt: Word;
     P: Byte;
   begin
     with MD5Context do
     begin
       Cnt        := (Count[0] shr 3) and $3F;
       P          := Cnt;
       BufChar[P] := $80;
       Inc(P);
       Cnt := 64 - 1 - Cnt;

       if Cnt < 8 then
       begin
         FillChar(BufChar[P], Cnt, #0);
         MD5Transform(State, BufLong);
         FillChar(BufChar, 56, #0);
       end
       else
         FillChar(BufChar[P], Cnt - 8, #0);

       BufLong[14] := Count[0];
       BufLong[15] := Count[1];
       MD5Transform(State, BufLong);
       Move(State, Digest, 16)
     end;

     FillChar(MD5Context, SizeOf(TMD5Context), #0)
   end;

   procedure MD5Transform(var Buf: array of Longint;
     const Data: array of Longint);
   var
     A, B, C, D: Longint;

     procedure Round1(var W: Longint; X, Y, Z, Data: Longint; S: Byte);
     begin
       Inc(W, (Z xor (X and (Y xor Z))) + Data);
       W := (W shl S) or (W shr (32 - S));
       Inc(W, X)
     end;

     procedure Round2(var W: Longint; X, Y, Z, Data: Longint; S: Byte);
     begin
       Inc(W, (Y xor (Z and (X xor Y))) + Data);
       W := (W shl S) or (W shr (32 - S));
       Inc(W, X)
     end;

     procedure Round3(var W: Longint; X, Y, Z, Data: Longint; S: Byte);
     begin
       Inc(W, (X xor Y xor Z) + Data);
       W := (W shl S) or (W shr (32 - S));
       Inc(W, X)
     end;

     procedure Round4(var W: Longint; X, Y, Z, Data: Longint; S: Byte);
     begin
       Inc(W, (Y xor (X or not Z)) + Data);
       W := (W shl S) or (W shr (32 - S));
       Inc(W, X)
     end;

   begin
     A := Buf[0];
     B := Buf[1];
     C := Buf[2];
     D := Buf[3];
     Round1(A, B, C, D, Data[0] + Longint($d76aa478), 7);
     Round1(D, A, B, C, Data[1] + Longint($e8c7b756), 12);
     Round1(C, D, A, B, Data[2] + Longint($242070db), 17);
     Round1(B, C, D, A, Data[3] + Longint($c1bdceee), 22);
     Round1(A, B, C, D, Data[4] + Longint($f57c0faf), 7);
     Round1(D, A, B, C, Data[5] + Longint($4787c62a), 12);
     Round1(C, D, A, B, Data[6] + Longint($a8304613), 17);
     Round1(B, C, D, A, Data[7] + Longint($fd469501), 22);
     Round1(A, B, C, D, Data[8] + Longint($698098d8), 7);
     Round1(D, A, B, C, Data[9] + Longint($8b44f7af), 12);
     Round1(C, D, A, B, Data[10] + Longint($ffff5bb1), 17);
     Round1(B, C, D, A, Data[11] + Longint($895cd7be), 22);
     Round1(A, B, C, D, Data[12] + Longint($6b901122), 7);
     Round1(D, A, B, C, Data[13] + Longint($fd987193), 12);
     Round1(C, D, A, B, Data[14] + Longint($a679438e), 17);
     Round1(B, C, D, A, Data[15] + Longint($49b40821), 22);
     Round2(A, B, C, D, Data[1] + Longint($f61e2562), 5);
     Round2(D, A, B, C, Data[6] + Longint($c040b340), 9);
     Round2(C, D, A, B, Data[11] + Longint($265e5a51), 14);
     Round2(B, C, D, A, Data[0] + Longint($e9b6c7aa), 20);
     Round2(A, B, C, D, Data[5] + Longint($d62f105d), 5);
     Round2(D, A, B, C, Data[10] + Longint($02441453), 9);
     Round2(C, D, A, B, Data[15] + Longint($d8a1e681), 14);
     Round2(B, C, D, A, Data[4] + Longint($e7d3fbc8), 20);
     Round2(A, B, C, D, Data[9] + Longint($21e1cde6), 5);
     Round2(D, A, B, C, Data[14] + Longint($c33707d6), 9);
     Round2(C, D, A, B, Data[3] + Longint($f4d50d87), 14);
     Round2(B, C, D, A, Data[8] + Longint($455a14ed), 20);
     Round2(A, B, C, D, Data[13] + Longint($a9e3e905), 5);
     Round2(D, A, B, C, Data[2] + Longint($fcefa3f8), 9);
     Round2(C, D, A, B, Data[7] + Longint($676f02d9), 14);
     Round2(B, C, D, A, Data[12] + Longint($8d2a4c8a), 20);
     Round3(A, B, C, D, Data[5] + Longint($fffa3942), 4);
     Round3(D, A, B, C, Data[8] + Longint($8771f681), 11);
     Round3(C, D, A, B, Data[11] + Longint($6d9d6122), 16);
     Round3(B, C, D, A, Data[14] + Longint($fde5380c), 23);
     Round3(A, B, C, D, Data[1] + Longint($a4beea44), 4);
     Round3(D, A, B, C, Data[4] + Longint($4bdecfa9), 11);
     Round3(C, D, A, B, Data[7] + Longint($f6bb4b60), 16);
     Round3(B, C, D, A, Data[10] + Longint($bebfbc70), 23);
     Round3(A, B, C, D, Data[13] + Longint($289b7ec6), 4);
     Round3(D, A, B, C, Data[0] + Longint($eaa127fa), 11);
     Round3(C, D, A, B, Data[3] + Longint($d4ef3085), 16);
     Round3(B, C, D, A, Data[6] + Longint($04881d05), 23);
     Round3(A, B, C, D, Data[9] + Longint($d9d4d039), 4);
     Round3(D, A, B, C, Data[12] + Longint($e6db99e5), 11);
     Round3(C, D, A, B, Data[15] + Longint($1fa27cf8), 16);
     Round3(B, C, D, A, Data[2] + Longint($c4ac5665), 23);
     Round4(A, B, C, D, Data[0] + Longint($f4292244), 6);
     Round4(D, A, B, C, Data[7] + Longint($432aff97), 10);
     Round4(C, D, A, B, Data[14] + Longint($ab9423a7), 15);
     Round4(B, C, D, A, Data[5] + Longint($fc93a039), 21);
     Round4(A, B, C, D, Data[12] + Longint($655b59c3), 6);
     Round4(D, A, B, C, Data[3] + Longint($8f0ccc92), 10);
     Round4(C, D, A, B, Data[10] + Longint($ffeff47d), 15);
     Round4(B, C, D, A, Data[1] + Longint($85845dd1), 21);
     Round4(A, B, C, D, Data[8] + Longint($6fa87e4f), 6);
     Round4(D, A, B, C, Data[15] + Longint($fe2ce6e0), 10);
     Round4(C, D, A, B, Data[6] + Longint($a3014314), 15);
     Round4(B, C, D, A, Data[13] + Longint($4e0811a1), 21);
     Round4(A, B, C, D, Data[4] + Longint($f7537e82), 6);
     Round4(D, A, B, C, Data[11] + Longint($bd3af235), 10);
     Round4(C, D, A, B, Data[2] + Longint($2ad7d2bb), 15);
     Round4(B, C, D, A, Data[9] + Longint($eb86d391), 21);
     Inc(Buf[0], A);
     Inc(Buf[1], B);
     Inc(Buf[2], C);
     Inc(Buf[3], D);
   end;

   procedure MD5UpdateBuffer(var MD5Context: TMD5Context;
     Buffer: Pointer; BufSize: Integer);
   var
     BufTmp: PMD5Buffer;
     BufPtr: PChar;
     Bytes: Word;
   begin
     New(BufTmp);
     BufPtr := Buffer;

     try
       repeat
         if BufSize > MaxBufSize then
           Bytes := MaxBufSize
         else
           Bytes := BufSize;

         Move(BufPtr^, BufTmp^, Bytes);
         Inc(BufPtr, Bytes);
         Dec(BufSize, Bytes);
         if Bytes > 0 then
           MD5Update(MD5Context, BufTmp^, Bytes);
       until Bytes < MaxBufSize;
     finally
       Dispose(BufTmp);
     end;
   end;

   function GetMD5(Buffer: Pointer; BufSize: Integer): string;
   var
     I: Integer;
     MD5Digest: TMD5Digest;
     MD5Context: TMD5Context;
   begin
     for I := 0 to 15 do
       Byte(MD5Digest[I]) := I + 1;

     MD5Init(MD5Context);
     MD5UpdateBuffer(MD5Context, Buffer, BufSize);
     MD5Final(MD5Digest, MD5Context);
     Result := '';
     for I := 0 to 15 do
       Result := Result + IntToHex(Byte(MD5Digest[I]), 2);
   end;

   function StrMD5(Buffer: string): string;
   begin
     Result := GetMD5(@Buffer[1], Length(Buffer));
   end;

   end.


Click here to preview the Delphi Code Formatting Demo 2.

With FormatCode Delphi Code Formatters, you can format and transform any foreign Delphi source code to meet your preferred coding style or any common code convention in several seconds!