Advertisement
Guest User

Untitled

a guest
May 19th, 2017
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
DCS 2.34 KB | None | 0 0
  1. unit FileProcessing;
  2.  
  3. interface
  4.   uses SysUtils, StrUtils, PrinterDriverUnit, UtilityFunctions, Classes;
  5.  
  6.   type TApplicationType = (Word, Excel, Outlook, PowerPoint, Visio, Image, Pdf, Unknown);
  7.   FUNCTION GetProcessingApplication(p_Input : string) : TApplicationType;
  8.   procedure SendToProcessingApplication(p_Printer : PrinterDriver; p_Input, p_Output : string);
  9.  
  10. implementation
  11.  
  12.   FUNCTION GetProcessingApplication(p_Input : string) : TApplicationType;
  13.   var
  14.     inputExtension, usedApplication, appName, fileLine : string;
  15.     applicationType : TApplicationType;
  16.     extensionsFile : TextFile;
  17.     splitLine, splitExtensions : TStringArray;
  18.     i : INTEGER;
  19.   BEGIN
  20.     inputExtension := ExtractFileExt(p_Input);
  21.     usedApplication := 'raw';
  22.     applicationType := TApplicationType.Unknown;
  23.  
  24.     AssignFile(extensionsFile, 'filetypes.ini');
  25.     FileMode := fmOpenRead;
  26.     Reset(extensionsFile);
  27.  
  28.     WHILE NOT Eof(extensionsFile) DO
  29.     BEGIN
  30.       ReadLn(extensionsFile, fileLine);
  31.       splitLine := Split(fileLine, ':');
  32.       appName := splitLine[0];
  33.       splitExtensions := Split(splitLine[1]);
  34.  
  35.       FOR i := 0 TO Length(splitExtensions) - 1 DO
  36.       BEGIN
  37.         IF AnsiEndsStr(AnsiLowerCase(splitExtensions[0]), AnsiLowerCase(inputExtension)) THEN
  38.         BEGIN
  39.           IF AnsiCompareText('word', appName) = 0 THEN
  40.           BEGIN
  41.             applicationType := TApplicationType.Word;
  42.           end
  43.           ELSE IF AnsiCompareText('excel', appName) = 0 THEN
  44.           BEGIN
  45.             applicationType := TApplicationType.Excel;
  46.           end
  47.           ELSE IF AnsiCompareText('outlook', appName) = 0 THEN
  48.           BEGIN
  49.             applicationType := TApplicationType.Outlook;
  50.           end
  51.           ELSE IF AnsiCompareText('powerpoint', appName) = 0 THEN
  52.           BEGIN
  53.             applicationType := TApplicationType.PowerPoint;
  54.           end;
  55.  
  56.           usedApplication := appName;
  57.         end;
  58.       end;
  59.     end;
  60.  
  61.     CloseFile(extensionsFile);
  62.  
  63.     WriteLn(Format('Processing %s using %s', [ExtractFileName(p_Input), usedApplication]));
  64.     result := applicationType;
  65.   end;
  66.  
  67.   procedure SendToProcessingApplication(p_Printer : PrinterDriver; p_Input, p_Output : string);
  68.   var
  69.     applicationType : TApplicationType;
  70.   BEGIN
  71.     applicationType := GetProcessingApplication(p_Input);
  72.   end;
  73. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement