Arma 3 Scripting

Command in System

preprocessFile

Also available as Markdown and JSON, or read the original wiki page.

Description

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.

Syntax

preprocessFile fileName

Parameters:

Returns: String

Examples

Example 1

_content = preprocessFile "myFunction.sqf";

See also

fileExists · preprocessFileLineNumbers · loadFile · Function · SQF Syntax · call · spawn · execVM · PreProcessor Commands

Community notes

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".

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.

BrotherhoodOfHam

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.