| 
					
				 | 
			
			
				@@ -73,6 +73,7 @@ type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure DamageFileHead(AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure RecoverFileHead(AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure WriteAndAddHead(AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    procedure RemoveHead(const AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure ReadAndRemoveHead(AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure ResetFileHead; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -231,7 +232,6 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       AutoEncryptFile(sTempFile, sEncryptFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       RefreshFileHead; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       WriteAndAddHead(sEncryptFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      AppendLog('Check File-E'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if CheckFileValid(sEncryptFile) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         AppendLog('Check File-E --> Pass'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -481,6 +481,7 @@ var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   sConnectFile, sTempFile: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   vCon: TADOConnection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AppendLog('Check File-E'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Result := False; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     sConnectFile := GetTempFileName; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -490,21 +491,29 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if FileExists(AFileName) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      CopyFileOrFolder(AFileName, sTempFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if CheckFileEncrypt(sTempFile) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      AppendLog('Check File Exist'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if CopyFileOrFolder(AFileName, sTempFile) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ReadAndRemoveHead(sTempFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        AutoDecryptFile(sTempFile, sConnectFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CopyFileOrFolder(sTempFile, sConnectFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      RecoverFileHead(sConnectFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      vCon.ConnectionString := Format(SAdoConnectStr, [sConnectFile]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      vCon.Open; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Result := True; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AppendLog('Copy Check File -- Pass'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if CheckFileEncrypt(sTempFile) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          RemoveHead(sTempFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          AutoDecryptFile(sTempFile, sConnectFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          sConnectFile := sTempFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RecoverFileHead(sConnectFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AppendLog('prepare to Connect Check File'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vCon.ConnectionString := Format(SAdoConnectStr, [sConnectFile]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AppendLog('Checking File'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vCon.Open; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Result := True; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AppendLog('File Valid'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    vCon.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if Assigned(vCon) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      vCon.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if FileExists(sConnectFile) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       DeleteFile(PChar(sConnectFile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if FileExists(sConnectFile) then 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -523,6 +532,32 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Result := Trim(FFileHead.FileVersion); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+procedure TEncryptConnection.RemoveHead(const AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sTempFile: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FileStream, FileStreamTemp: TFileStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if FileExists(AFileName) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sTempFile := GetTempFileName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FileStream := TFileStream.Create(AFileName, fmOpenRead); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FileStreamTemp := TFileStream.Create(sTempFile, fmCreate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FileStream.Position := SizeOf(TDrawingFileHead); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FileStreamTemp.CopyFrom(FileStream, FileStream.Size - SizeOf(TDrawingFileHead)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FileStream.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FileStreamTemp.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      CopyFileOrFolder(sTempFile, AFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if FileExists(sTempFile) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DeleteFile(PChar(sTempFile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { TConnection } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 procedure TConnection.AppendLog(const ALog: string); 
			 |