The script below is recorded with Photoshop's script listner. It searches the document for the word "Sun" and replaces it with the word "Moon".
My question: how to get the replacement word, "Moon", from an external .txt file?
// =======================================================
var id1 = charIDToTypeID( "Opn " );
var desc1 = new ActionDescriptor();
var id2 = charIDToTypeID( "null" );
desc1.putPath( id2, new File( "C:\\document.psd" ) );
executeAction( id1, desc1, DialogModes.NO );
// =======================================================
var id3 = stringIDToTypeID( "replace" );
var desc2 = new ActionDescriptor();
var id4 = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var id5 = charIDToTypeID( "Prpr" );
var id6 = stringIDToTypeID( "replace" );
ref1.putProperty( id5, id6 );
var id7 = charIDToTypeID( "TxLr" );
var id8 = charIDToTypeID( "Ordn" );
var id9 = charIDToTypeID( "Al " );
ref1.putEnumerated( id7, id8, id9 );
desc2.putReference( id4, ref1 );
var id10 = charIDToTypeID( "Usng" );
var desc3 = new ActionDescriptor();
var id11 = stringIDToTypeID( "find" );
desc3.putString( id11, "Sun" );
var id12 = stringIDToTypeID( "replace" );
desc3.putString( id12, "Moon" );
var id13 = stringIDToTypeID( "checkAll" );
desc3.putBoolean( id13, true );
var id14 = charIDToTypeID( "Fwd " );
desc3.putBoolean( id14, false );
var id15 = stringIDToTypeID( "caseSensitive" );
desc3.putBoolean( id15, true );
var id16 = stringIDToTypeID( "wholeWord" );
desc3.putBoolean( id16, false );
var id17 = stringIDToTypeID( "findReplace" );
desc2.putObject( id10, id17, desc3 );
executeAction( id3, desc2, DialogModes.NO );