preprocessFile: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "|= Game version" to "|Game version=")
m (Text replacement - "[[Image:" to "[[File:")
 
(52 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| ofpr |Game name=
|game1= ofp
|version1= 1.85


|1.85|Game version=
|game2= ofpe
____________________________________________________________________________________________
|version2= 1.00


| Reads and processes the content of the specified file. Preprocessor is C-like, supports comments using // or /* and */ and [[PreProcessor Commands]].<br>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. <br><br>
|game3= arma1
{{Warning | If the file you are loading is not prepared using UTF-8 encoding and contains some characters [[toArray | with codes]] > 127, they might convert incorrectly}} |DESCRIPTION=
|version3= 1.00
____________________________________________________________________________________________


| [[String]] <nowiki>=</nowiki> '''preprocessFile''' fileName |SYNTAX=
|game4= arma2
|version4= 1.00


|p1= fileName: [[String]] |PARAMETER1=
|game5= arma2oa
|version5= 1.50


| [[String]] |RETURNVALUE=
|game6= tkoh
____________________________________________________________________________________________
|version6= 1.00
 
|x1= <code>_content = [[preprocessFile]] "myFunction.sqf";</code> |EXAMPLE1=
____________________________________________________________________________________________


| [[preprocessFileLineNumbers]], [[loadFile]], [[Function]], [[SQF syntax]], [[call]], [[spawn]], [[execVM]], [[PreProcessor Commands]] |SEEALSO=
|game7= arma3
|version7= 0.50


}}
|gr1= System
 
|descr= Reads and processes the content of the specified file. Preprocessor is C-like, supports comments using {{hl|//}} or {{hl|/*}} and {{hl|*/}} 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.
{{Feature|warning|If the file you are loading is not prepared using UTF-8 encoding and contains some characters [[toArray | with codes]] > 127, they might convert incorrectly.}}
 
|s1= [[preprocessFile]] fileName
 
|p1= fileName: [[String]] - path to the file and name of the file
 
|r1= [[String]]


<h3 style="display:none">Notes</h3>
|x1= <sqf>_content = preprocessFile "myFunction.sqf";</sqf>
<dl class="command_description">
<!-- Note Section BEGIN -->


<dd class="notedate">Posted on March 4, 2008
|seealso= [[fileExists]] [[preprocessFileLineNumbers]] [[loadFile]] [[Function]] [[SQF Syntax]] [[call]] [[spawn]] [[execVM]] [[PreProcessor Commands]]
<dt class="note">'''[[User:Alef|Alef]]'''
}}
<dd class="note">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".


<dd class="notedate">Posted on July 8, 2011
{{Note
<dt class="note">'''[[User:kju|kju]]'''
|user= Alef
<dd class="note">Use [[preprocessFileLineNumbers]] instead as it provides more context information on error.
|timestamp= 20080304223500
|text= 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".
}}


<dd class="notedate">Posted on December 17, 2013
{{Note
<dt class="note">'''[[User:Killzone_Kid|Killzone_Kid]]'''
|user= Kju
<dd class="note">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.
|timestamp= 20110708105900
|text= Use [[preprocessFileLineNumbers]] instead as it provides more context information on error.
}}


[[Image:PreprocessFile.jpg]]
{{Note
|user= Killzone_Kid
|timestamp= 20131217134400
|text= [[File:PreprocessFile.jpg|right]]The main difference between [[preprocessFile]] and [[preprocessFileLineNumbers]] is that the latter adds #line directive to the target file, which allows to log the {{hl|__LINE__}} error happened at and the {{hl|__FILE__}} error happened in.
}}


<dd class="notedate">Posted on July 25, 2014
{{Note
<dt class="note">'''[[User:BrotherhoodOfHam|BrotherhoodOfHam]]'''
|user= BrotherhoodOfHam
<dd class="note"><br/>Essentially what the preprocessFile command does is it refers to the contents of a file as a string:<br/>
|timestamp= 20140725184300
Example 1:
|text= Essentially what the preprocessFile command does is it refers to the contents of a file as a string:<br>
<br/>boop.html:
Example 1:<br>
<code><t align = 'center' valign = 'middle' shadow = '0' size = '2'>structured text</t></code>
boop.html:
<syntaxhighlight lang="html"><t align = 'center' valign = 'middle' shadow = '0' size = '2'>structured text</t></syntaxhighlight>
init.sqf:
<sqf>
_text = parseText preprocessFile "boop.html";
hint _text;
</sqf>
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.<br>
Example 2:<br>
init.sqf:
init.sqf:
<code>_text = [[parseText]] [[preprocessFile]] "boop.html";
<sqf>
[[hint]] _text;
hint preprocessFile "description.ext";
</code><br/>
copyToClipboard preprocessFile "mission.sqm";
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.
</sqf>
<br/>
Example 2:
<br/>
init.sqf: <br/>
<code>[[hint]] [[preprocessFile]] "description.ext";
[[copyToClipboard]] [[preprocessFile]] "mission.sqm";
</code>
The above is all valid. However, using *.jpg or any other files saved in an image format is not possible.
The above is all valid. However, using *.jpg or any other files saved in an image format is not possible.
<!-- Note Section END -->
}}
</dl>
 
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|PREPROCESSFILE]]
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|PREPROCESSFILE]]
[[Category:Scripting Commands ArmA|PREPROCESSFILE]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]

Latest revision as of 00:10, 21 November 2023

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 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.
If the file you are loading is not prepared using UTF-8 encoding and contains some characters with codes > 127, they might convert incorrectly.
Groups:
System

Syntax

Syntax:
preprocessFile fileName
Parameters:
fileName: String - path to the file and name of the file
Return Value:
String

Examples

Example 1:
_content = preprocessFile "myFunction.sqf";

Additional Information

See also:
fileExists preprocessFileLineNumbers loadFile Function SQF Syntax call spawn execVM PreProcessor 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
Alef - c
Posted on Mar 04, 2008 - 22:35 (UTC)
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".
Kju - c
Posted on Jul 08, 2011 - 10:59 (UTC)
Use preprocessFileLineNumbers instead as it provides more context information on error.
Killzone_Kid - c
Posted on Dec 17, 2013 - 13:44 (UTC)
PreprocessFile.jpg
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 - c
Posted on Jul 25, 2014 - 18:43 (UTC)
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.