Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit FileProcessing;
- interface
- uses SysUtils, StrUtils, PrinterDriverUnit, UtilityFunctions, Classes;
- type TApplicationType = (Word, Excel, Outlook, PowerPoint, Visio, Image, Pdf, Unknown);
- FUNCTION GetProcessingApplication(p_Input : string) : TApplicationType;
- procedure SendToProcessingApplication(p_Printer : PrinterDriver; p_Input, p_Output : string);
- implementation
- FUNCTION GetProcessingApplication(p_Input : string) : TApplicationType;
- var
- inputExtension, usedApplication, appName, fileLine : string;
- applicationType : TApplicationType;
- extensionsFile : TextFile;
- splitLine, splitExtensions : TStringArray;
- i : INTEGER;
- BEGIN
- inputExtension := ExtractFileExt(p_Input);
- usedApplication := 'raw';
- applicationType := TApplicationType.Unknown;
- AssignFile(extensionsFile, 'filetypes.ini');
- FileMode := fmOpenRead;
- Reset(extensionsFile);
- WHILE NOT Eof(extensionsFile) DO
- BEGIN
- ReadLn(extensionsFile, fileLine);
- splitLine := Split(fileLine, ':');
- appName := splitLine[0];
- splitExtensions := Split(splitLine[1]);
- FOR i := 0 TO Length(splitExtensions) - 1 DO
- BEGIN
- IF AnsiEndsStr(AnsiLowerCase(splitExtensions[0]), AnsiLowerCase(inputExtension)) THEN
- BEGIN
- IF AnsiCompareText('word', appName) = 0 THEN
- BEGIN
- applicationType := TApplicationType.Word;
- end
- ELSE IF AnsiCompareText('excel', appName) = 0 THEN
- BEGIN
- applicationType := TApplicationType.Excel;
- end
- ELSE IF AnsiCompareText('outlook', appName) = 0 THEN
- BEGIN
- applicationType := TApplicationType.Outlook;
- end
- ELSE IF AnsiCompareText('powerpoint', appName) = 0 THEN
- BEGIN
- applicationType := TApplicationType.PowerPoint;
- end;
- usedApplication := appName;
- end;
- end;
- end;
- CloseFile(extensionsFile);
- WriteLn(Format('Processing %s using %s', [ExtractFileName(p_Input), usedApplication]));
- result := applicationType;
- end;
- procedure SendToProcessingApplication(p_Printer : PrinterDriver; p_Input, p_Output : string);
- var
- applicationType : TApplicationType;
- BEGIN
- applicationType := GetProcessingApplication(p_Input);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement