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".
Results appear below as you type; use the arrow keys to move through them.
Command · Markdown · JSON · original wiki page
Reads and processes the content of the specified file. Preprocessor is C-like, supports comments using // or /* and */ and PreProcessor Commands.
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.
Warning
If the file you are loading is not prepared using UTF-8 encoding and contains some characters with codes > 127, they might convert incorrectly.
preprocessFile fileName
Parameters:
fileName: String - path to the file and name of the fileReturns: String
_content = preprocessFile "myFunction.sqf";
fileExists · preprocessFileLineNumbers · loadFile · Function · SQF Syntax · call · spawn · execVM · PreProcessor Commands
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".
Use preprocessFileLineNumbers instead as it provides more context information on error.
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.
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.