Wollte ja eigentlich in vbs weitermachen, habs aber jetzt in javascript gemacht, da fühl ich mich mehr zu hause (sorry an son_quatsch). Ich gebe zu, mein Script ist länger, als es sein müsste. insbesondere länger als das von son_quatsch.
Aber... na, wenns tatsächlich jemanden interessiert, möge er sich melden.
ich ging gestern davon aus, daß immer die neueste datei gefunden werden soll, das macht mein script also.
ich warte aber erstmal ab, ob das wirklich nicht gewünscht war, bevor ich was ändere.
(Es wäre übrigens auch möglich, die informationen im inputfile direkt aus einer excel datei zu lesen, statt aus einer txt.)
Die Endung der Datei, die de folgenden Code enthält, muss ".hta" lauten.
[code]
<html>
<head>
<title></title>
<HTA:APPLICATION ID="xyzabc" APPLICATIONNAME="asgasd" SCROLL="yes" SINGLEINSTANCE="yes"/>
<style type="text/css">
* { font-family:courier new; font-size:14px; }
</style>
<script type="text/jscript">
//-----------------------------
var locations = {
posA: "D:/_produkte/coding/sn",
posB: "D:/_produkte/coding/sn/x",
infile: "D:/_produkte/coding/sn/in.txt",
outfile: "D:/_produkte/coding/sn/out.txt"
};
//-----------------------------
function init()
{
var list = getSortedList();
var infile = loadFile( locations.infile ).replace(/\r\n/g,"\n").split("\n");
save( checkIfInFileList( list, infile ) );
}
//-----------------------------
function checkIfInFileList( list, infile )
{
var i,temp;
var out = [];
for( i = 0; i < infile.length; i++ ) { out.push( findInList( infile[i] ) ); }
return out;
function findInList( s )
{
var i = 0;
for( i = 0; i < list.length; i++ ) { if( s == list[i].n.join("_").substr( 0, 14 ) ) return list[i]; }
return false;
}
};
//-----------------------------
function save( list )
{
var out = [];
for( var i = 0; i < list.length; i++ )
{
if( list[i].n )
{
out.push( list[i].n.join("_") );
msg( list[i].n + " - " + list[i].p + "<br>" );
}
else
{
out.push( "! datei nicht gefunden !" );
msg( "! datei nicht gefunden !<br>" );
}
}
saveFile( locations.outfile, out.join("\r\n") );
};
//-----------------------------
function getSortedList()
{
var out = new Array();
var locs = [ locations.posA, locations.posB ];
var temp, i, k;
for( i = 0; i < locs.length; i++ )
{
temp = getFiles( locs[i], 5, "txt" )[1];
for( k = 0; k < temp.length; k++ )
{
temp[k] = { p:temp[k].path, n:temp[k].name };
temp[k].p = temp[k].p.replace(/\\/g,"/");
temp[k].p = temp[k].p.substr( 0, temp[k].p.lastIndexOf("/") );
temp[k].n = temp[k].n.split(".")[0];
temp[k].n = [ temp[k].n.substr( 0, 14 ), temp[k].n.substr( 14 ) ];
out.push( temp[k] );
}
}
out.sort( sort );
out = findLast( out );
return out;
//__
function sort( a, b )
{
var i;
a = a.n;
b = b.n;
for( i = 0; i < a.length; i++ )
{
if( !b[i] ) return 1;
if( a[i].length > b[i].length ) return 1;
if( a[i].length < b[i].length ) return -1;
if( a[i] > b[i] ) return 1;
if( a[i] < b[i] ) return -1;
}
return 0;
};
//__
function findLast( arr )
{
var i = 0;
var out = new Array();
var current, last;
for( i = 0; i < arr.length; i++ )
{
current = arr[i].n.join("_").substr( 0, 14 );
if( i > 0 && last != current ) out.push( arr[ i - 1 ] );
last = current;
}
if( i > 0 ) out.push( arr[ i - 1 ] );
return out;
};
};
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function loadFile(FileName)
{
var fso,f1;
var FileStr = "";
fso = new ActiveXObject("Scripting.Filesystemobject");
if(fso.FileExists(FileName))
{
f1 = fso.OpenTextFile(FileName, 1);
if(f1.AtEndOfStream) msg("(!) Die Datei ist leer<br>", true); else FileStr = f1.ReadAll();
f1.close();
}
else { msg("(!) Datei nicht gefunden! --->" + FileName + "<br>", true); }
return FileStr;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function saveFile(FileName,str)
{
var fso, folder, file, foldername;
//____
function getfoldername(s) { s = s.replace(/\\/g,"/"); s = s.substr( 0, s.lastIndexOf("/") ); return s; }
fso = new ActiveXObject("Scripting.Filesystemobject");
foldername = getfoldername(FileName);
if(fso.FolderExists(foldername))
{
folder = fso.Getfolder(foldername);
if(folder.attributes!=16&&folder.attributes!=48)
{
msg("[savefile] kann auf Verzeichnis nicht zugreifen ---><b>" + foldername + "</b> (att:" + folder.attributes + ")");
return false;
}
if(fso.FileExists(FileName))
{
file = fso.GetFile(FileName);
if(file.attributes!=0&&file.attributes!=32)
{
msg("[savefile] kann auf Datei nicht zugreifen ---><b>" + FileName + "</b> (att:" + file.attributes + ")");
return false;
}
}
file = fso.OpenTextFile(FileName, 2, true);
file.write(str);
file.close();
}
else
{
msg("Verzeichnis nicht gefunden! ---><b>" + foldername + "</b>");
}
}
//-----------------------------------------------------------------------------------
//-- returns an array: [ array of folder objects, array of file objects ]
//-- filter:
//-- n = 0000 (0): all folders and subfolders and all files
//-- n = 0001 (1): no folders
//-- n = 0010 (2): no files
//-- n = 0100 (4): no subfolders
//-- ext = extension as STRING
//-- part = member as STRING, eg. "name"
//-----------------------------------------------------------------------------------
function getFiles( startfolder, n , ext, part )
{
if( !n ) n = 0;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folders = new Array();
var files = new Array();
if( !fso.FolderExists( startfolder ) )
{
msg("(!) Folder " + startfolder + " not found!", true );
r