Forum Replies Created

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • in reply to: 32-bit…64-bit version? #8433
    arnold
    Member

    Thank you for the clear explanation :-)

    in reply to: Run macro for all files in a folder? #7167
    arnold
    Member

    hi yutaka. first i want to ty for writing the script!
    i tried this with one of the good scripts on this forum. i get a positive message, but also an error (ERRORS Root Folder: D:test) in a new file. and when i check the files, nothing happened :-? here is the script i try to use in the test


    sRootDir = "D:test"; // root folder
    editor.NewFile();
    var docResult = editor.ActiveDocument;
    docResult.writeln( "ERRORS Root Folder: " + sRootDir );

    Redraw = false;
    var nTotalFiles = EnumerateFolder( sRootDir );
    Redraw = true;

    alert( "Finished successfully. Total of " + nTotalFiles + " files processed." );


    function EnumerateFolder( sFolder )
    {
    var nTotal = 0;
    var fso, f, fc, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFolder(sFolder);
    fc = new Enumerator(f.files);
    for (; !fc.atEnd(); fc.moveNext())
    {
    sItem = String( fc.item() );
    nLen = sItem.length;
    if( sItem.indexOf( "_" ) == -1 && sItem.substr( nLen - 4 ) == ".htm" ){ // make sure file or folder does not begin with _ and the file extension is .htm.
    DoSomething( sItem );
    nTotal++;
    }
    }

    fc = new Enumerator(f.SubFolders);
    s = "";
    for (; !fc.atEnd(); fc.moveNext())
    {
    sItem = String( fc.item() );
    nLen = sItem.length;
    if( sItem.indexOf( "_" ) == -1 ){ // make sure folder name does not begin with _
    nTotal += EnumerateFolder( sItem );
    }
    }
    return nTotal;
    }

    function DoSomething( sPath )
    {
    // helper function that we use to put the entire text of a file in a string
    // **************************************************
    function string_fromfile(sUrl){
    var ForReading = 1, ForWriting = 2, ForAppending = 8;
    var fso, fob;
    try{
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fob = fso.OpenTextFile(sUrl, ForReading);
    var strRead = fob.ReadAll();
    fob.Close();
    fso = null;
    return strRead;
    }
    catch(e){
    if(000){}
    else if(e.message == 'Input past end of file'){return '';} // blank file
    else if(e.message == 'File not found'){return ''} // not found
    else if(e.message != ''){return ''} // other problem
    };
    }

    // main code
    // **************************************************
    stext = (string_fromfile(document.FullName));
    smatch = '';

    // look inside the raw text and see if we can find something inside the h1 tag
    try{
    amatch = stext.match(/<h1>([^<]+)<.h1>/);
    smatch = amatch[1];
    }catch(ex){ smatch = '';}

    // did we actually find something inside the h1 tag?
    if(smatch != ''){
    // fix what we found so that unwanted characters get changed into a dash
    smatch = smatch.split(/[W]+/).join('-');
    // extract the parent directory and combine it with what we found to form a new filename
    newname = (document.FullName.split(/x5c/).slice(0,-1).join("x5c") + "x5c" + smatch + '.htm');
    // save a copy of the document with its new name
    document.Save( newname );
    }
    }
    in reply to: Run macro for all files in a folder? #7165
    arnold
    Member

    no-one with a working script to run macros on a folder? :-(

    in reply to: Run macro for all files in a folder? #7113
    arnold
    Member

    hi nick. it sounds very interesting. can you post your working script, please? ty ! Arnold

Viewing 4 posts - 1 through 4 (of 4 total)