preprocessFile

From Bohemia Interactive Community
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Hover & click on the images for description

Description

Description:
Reads and processes the content of the specified file. Preprocessor is C-like, supports comments using // or /* and */ and macros defined with #define.
Due to the hard-drive access this command executes (and the lack of caching) this command should not be used in time-critical script loops.
Groups:
Uncategorised

Syntax

Syntax:
String = preprocessFile fileName
Parameters:
fileName: String
Return Value:
String

Examples

Example 1:
_content=preprocessFile "myFunction.sqf"

Additional Information

See also:
preprocessFileLineNumbersloadFileFunctionSQF syntaxcallspawnexecVMPreProcessor Commands

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Posted on March 4, 2008
Alef
File path is always relative to mission directory. If script dir\a.sqf includes dir\b.sqf, use "dir\b.sqf" and not "b.sqf".
Posted on July 8, 2011
kju
Use preprocessFileLineNumbers instead as it provides more context information on error.
Posted on December 17, 2013
Killzone_Kid
The main difference between preprocessFile and preprocessFileLineNumbers is that the latter adds #line directive to the target file, which allows to log the __LINE__ error happened at and the __FILE__ error happened in. PreprocessFile.jpg

Bottom Section


Essentially what the preprocessFile command does is it refers to the contents of a file as a string:
Example 1:
boop.html: <t align = 'center' valign = 'middle' shadow = '0' size = '2'>structured text</t> init.sqf: _text = parseText preprocessFile "boop.html"; hint _text;
This is especially useful for long strings, and it works on files with any file extension as long as they can be edited with a text editor.
Example 2:
init.sqf:
hint preprocessFile "description.ext"; copyToClipboard preprocessFile "mission.sqm"; The above is all valid. However, using *.jpg or any other files saved in an image format is not possible.