18.6k Aufrufe
Gefragt in WindowsXP von romero Mitglied (323 Punkte)
hallöchen.

hab da folgenden sachverhalt.möchte eine ausgelesene (aus Excel) txt-datei mit folgendem inhalt (der inhalt der txt spielt keine große rolle):

a123-45678-000-00
a123-45679-001-00
...

dieser inhalt soll nun mit folgender FOR-schleife umbenannt und in eine neue txt gespeichert werden:

FOR /F "tokens=1,2,3 delims=-" %%a IN (test.txt) DO (
DIR C:\test\%%a_%%b_%%c >> test_neu.txt
)


ergebnis:

a123_45678_000
a123_45679_001
...

das klappt schon gut.

nun geht es aber weiter.nun steht aber,wenn er diese daten aus dem laufwerk zieht an der 15. stelle (gezählt wird ab der 1. stelle) ein buchstabe.je höher der buchstabe,desto aktueller ist die datei, sprich a < d < z < aa < ...

wenn ich aber mit der oben genannten "formel" das laufwerk auslese, bringt er mir alle dateien die bis zur 14. stelle so heißen.

er soll aber nur den aktuellsten nehmen,der der den höchsten buchstaben hat und diese in eine txt speichern.

hab schon versucht mit folgender formel das ganze zu machen, aber so richtig ist es noch nicht das was ich will.

FOR /F "tokens=1,2,3 delims=-" %%a IN (test.txt) DO DIR C:\test\ %%a_%%b_%%c FOR /L %%x IN (0,1,15) DO (
IF [%%x] EQU [14] IF [%%x] EQU [B] (
ECHO ok
)
)


also in worten ausgedrückt:

erst liest er die gezogene txt aus und sucht die entsprechende datei.dann soll er überprüfen (wenn er mehrere dateien mit dem selben namen (wie gesagt,bis zur 15. stelle gibt es mehrere dateien) findet),welche die aktuellste ist und diese dann in eine txt speichern.

so soll es aussehen:

gezogene txt:

a123-45678-000-00
a123-45679-001-00
...

umgewandelte txt:

a123_45678_000
a123_45679_000
...

gefundene dateien:

a123_45678_000A_20b.txt
a123_45678_000B_20b.txt
a123_45678_000D_20b.txt

a123_45679_001B_20b.txt
a123_45679_001H_20b.txt
a123_45679_001L_20b.txt
a123_45679_001W_20b.txt
a123_45679_001AA_20b.txt

...

endgültige bzw fertige txt:

a123_45678_000D_20b.txt
a123_45679_001AA_20b.txt
...

und das bekomm ich nicht hin.

hab zwar auch mit FINDSTR probiert aber da sucht er nur die raus die er mit dem entsprechendem buchstaben findet.also wenn er alle mit *B* findet,dann schreibt er diese raus,wenn er aber auch nach *C* suchen soll,dann nimmt er diese auch raus und da beißen sich dann 2 dateien,da nur die eine,die aktuellste gebraucht wird.

kann mir da einer helfen?vielen dank im voraus schonmal.

Romero

48 Antworten

0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
Mal ordnung machen:
Frage #1: Excel
Frage #2: wie starte ich diesen script aus einem batch heraus
Frage #3: wie müssen diese input-dateien heißen
Frage #4: !datei nicht gefunden!
Frage #5: Format 'a123_45678_004_D_20m' statt 'a123_45678_004D_20m.txt'

Antwort auf Frage #1: können wir uns drum kümmern, wenn alles andere funktioniert, würde ich sagen. Dann ist es ganz einfach.

Antwort auf Frage #2: Batch sollte eigentlich gar nicht mehr nötig sein. Aber fürs erste:
suche und ersetze die funktion

function init()
{
...
}

mit diesem code

//-----------------------------
function getCommandline()
{
var cmln = xyzabc.commandLine.replace(/ /g,"").split("-");
if( cmln.length == 3 )
{
locations.infile = cmln[1];
locations.outfile = cmln[2];
}
};

//-----------------------------
function init()
{
var infile, list;
getCommandline();
list = getSortedList();
infile = loadFile( locations.infile ).replace(/\r\n/g,"\n").split("\n");
save( checkIfInFileList( list, infile ) );
}


Antwort auf Frage #3 + #4:
Das Script sucht die Dateien, die in der Inputdatei verzeichnet sind. Die Ausgabe sollte die entsprechenden neuesten Dateien zeigen.
"datei nicht gefunden" heisst hier, es wurde keine Datei zu dem Eintrag in der Inputdatei gefunden.

Die Meldung wird deutlicher wenn Du die folgenden Stellen im Script suchst und so änderst:

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 s;
}

und
msg( "! datei nicht gefunden '" + list[i] + "' !<br>" );


Antwort auf Frage #5:
Das Script verarbeitet die Dateien so, wie sie heissen (wenn ich keinen Fehler gemacht habe).
Prüfe mal, ob Deine Dateinamen richtig sind.
Man kann natürlich auch verschiedene Dateinamen formate verarbeiten, aber dazu müsste man eine genaue Beschreibung der möglichen Dateinamenformate festlegen, und dazu eine entsprechende converter funktion schreiben. Kein Problem, sollten wir aber vielleicht auch besser gezielt lösen, wenn #2 - #4 gelöst sind.
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
Achso, noch zu #2:
Inhalt der Batchdatei zB:
fwigsd2.hta -in.txt -out1.txt
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
ok habe alles so eingetragen bzw ersetzt wie du es mir geschrieben hast.

aber die dateien heißen,auch nach überprüfung a123_45678_004D_20m.txt etc.

also da ist es ein fehler bei dem script (hab da was entdeckt,das geht ohne diesem zeichen wunderbar)

out.push( list[i].n.join("_")
liegt das daran das dieses "_" weg muss???also bei allen?weil dann schreibt er das dann auch.

wenn ich diesen script starte dann kommt n fenster hoch wo folgendes steht

a123_45678_000,D_10m - D:/save/OLUTEX
a123_45679_001,AB_20b - D:/save/OLUTEX
! datei nicht gefunden '' !

was ist das mit dem komma?und da steht wieder das mit der datei nicht gefunden?

aber die input-datei sieht wie folgt aus:

a123_45678_000
a123_45679_001


die erzeugte output-datei so:

a123_45678_000_D_10m
a123_45679_001_AB_20b
! datei nicht gefunden !

aber sie muss wie gesagt so aussehen:

a123_45678_000_D_10k
a123_45678_000_D_10m
a123_45679_001_AB_10s
a123_45679_001_AB_20b

weil es diese dateien gibt...aber er gibt nur 2 an.mach ich da watt falsch???
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
hmm... ich wollte schon sagen, daß Du keine genauen Angaben machst, aber ich stelle mit der zeit fest, daß Du anscheinend alle Angaben gemacht hast, die nötig sind, wenn auch teilweise etwas missverständlich.
Ist aber auch ganz schön verwirrend, finde ich.
Ich glaube (bis auf weiteres), es jetzt verstanden zu haben.


schau mal, ob's das jetzt ist, ersetze einfach die entsprechenden funktionen:
(In dem Fall, daß auf beiden Laufwerken genau die gleiche Datei existiert, werden beide in die outdatei geschrieben. Wenn das nicht gewünscht ist, muss das eben auch noch geklärt werden)
//-----------------------------
function checkIfInFileList( list, infile )
{
var i,temp;
var out = [];
for( i = 0; i < infile.length; i++ ) { out = out.concat( findInList( infile[i] ) ); }
return out;

function findInList( s )
{
var i = 0;
var out = [];
for( i = 0; i < list.length; i++ )
{
if( s == list[i].n.join("_").substr( 0, 14 ) ) out.push( list[i] );
}
if( out.length == 0 ) return [s];
return out;
}
};

//-----------------------------
function save( list )
{
var out = [];
for( var i = 0; i < list.length; i++ )
{
if( list[i].n )
{
out.push( list[i].n.join("") );
msg( i + " " + list[i].n + " - " + list[i].p );
}
else
{
out.push( "! datei nicht gefunden: '" + list[i] + "'" );
msg( i + " " + "! datei nicht gefunden '" + list[i] + "' !" );
}
}
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 temp = [];
var current000, last000;
var currentX, lastX;
var current00x, last00x;

for( i = 0; i < arr.length; i++ )
{
current000 = arr[i].n[0];
current00x = arr[i].n[1].split("_")[1];
currentX = arr[i].n[1].split("_")[0];
if( last000 != current000 )
{
out = out.concat( temp );
temp = [];
}
if( i > 0 && lastX != currentX ) { temp = []; }
temp.push( arr[ i ] );
last000 = current000;
lastX = currentX;
last00x = current00x;
}

return out;
};
};


Übrigens, Du schriebst:

aber sie muss wie gesagt so aussehen:

a123_45678_000_D_10k
a123_45678_000_D_10m
a123_45679_001_AB_10s
a123_45679_001_AB_20b


Das widerspricht dem, was Du vorher geschrieben hast, nämlich es solle '_001AB_' heissen statt '_001_AB_".
Ich nehme an, das war ein Irrtum, und Du bezogst Dich nur auf die '..._10k' usw., richtig ?

Es würde bei der Kommunikation etwas helfen, die Abschnitte des Dateinamens ( a123_45678 + AB + 10k ) irgendwie zu bezeichnen, zB. sowas wie Nummer, Kürzel, Version, Variante, Stand, Ausgabe, Vorgang, Thema, ...

a123_45678_000,D_10m - D:/save/OLUTEX
a123_45679_001,AB_20b - D:/save/OLUTEX
! datei nicht gefunden '' !

was ist das mit dem komma?und da steht wieder das mit der datei nicht gefunden?


Javascript erwartet für die Ausgabe einen String, und wenn es keinen bekommt, versucht es, das was es bekommt in einen String umzuwandeln.
Im Falle von Arrays tut es das, indem es einfach die Elemente des Arrays mit Kommas zu einem String verbindet.
Daher das Komma.

Das "datei nicht gefunden" sieht für mich immernoch korrekt aus, demnach würde eine Datei, die im Inputfile verzeichnet ist, nicht existieren.
Immerhin sollte der obige Code nun anzeigen, welche datei denn nicht gefunden wurde. Probier mal.

So, nu bin ich aber auch müde. Gut Nacht.
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
erstmal vielen dank für diese überarbeitung

und sorry das ich mich grad jetzt wieder melde aber hatte wegen beruflicher situation grad wenig zeit.

habe es gleich eingearbeitet und habe festgestellt das dieser script genau das macht was er soll.also er schreibt genau beide bzw alle varianten rein die er findet.

nun aber folgendes noch :)

er schreibt das ganze doppelt rein.liegt es daran das ich bei den beiden laufwerken ein und dieselbe adresse eingegeben hab?und nun sozusagen beide laufwerke (bzw das eine doppelt) durchsucht und das dann reinschreibt in die outputdatei?

und aber in der outputdatei steht immer noch datei nicht gefunden.nur nun hat er alle gefunden die es gibt.halt nur doppelt.also das muss da noch weg.ok kann es dann mitm batch noch rauslöschen aber es liegt ja daran das er halt keine gefunden hat,obwohl,laut meiner txt's er alle in der output-datei vorhanden sind.

zu deinen fragen:

mit dem laufwerk: das erste laufwerk was ich angebe ist das aktuellere,also da soll er als 1. zu greifen.das 2. ist das wo sie dann auf alle fälle drin sein sollten.wenn nicht,dann datei nicht gefunden.

Das widerspricht dem, was Du vorher geschrieben hast, nämlich es solle '_001AB_' heissen statt '_001_AB_".
Ich nehme an, das war ein Irrtum, und Du bezogst Dich nur auf die '..._10k' usw., richtig ?


da hast du recht.war ein fehler von mir.das war von dir völlig richtig kombiniert.

Es würde bei der Kommunikation etwas helfen, die Abschnitte des Dateinamens ( a123_45678 + AB + 10k ) irgendwie zu bezeichnen, zB. sowas wie Nummer, Kürzel, Version, Variante, Stand, Ausgabe, Vorgang, Thema, ...


ok.also:
a123 ist eine art baureihen-nummer
45678 ist die nummer bzw die bauplatz-kennung
001 ist die variante zu der bauplatz-kennung
AB oder D ... ist der ISSUE,d.h. es gibt die aktualität der nummer a123_45678_001 wieder
10k oder 20b oder ... gibt das material an bzw den werkstoff

so glaube das wars von deinen fragen.bei weiteren stehe auch dir gern zu verfügung.
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
er schreibt das ganze doppelt rein.

- werden ALLE Dateien doppelt gefunden, oder nur die, die auf beiden Laufwerken vorhanden sind ?
- sind die Dateinamen, die doppelt sind, vollkommen identisch, bis aufs letzte Zeichen ?
- vielleicht ein Beispiel ?

Ich habe es jetzt so vorgesehen:
alle Dateinamen von beiden Laufwerken werden in eine Liste geschrieben, die Liste wird sortiert, und nur die aktuellsten Dateien werden angezeigt. Dabei gilt:
finde alle Dateien 'baureihe_bauplatz_variante', davon nur die letzte 'issue', davon alle 'material'

Ist das so korrekt vorgesehen?

und aber in der outputdatei steht immer noch datei nicht gefunden.

Welcher Dateiname genau wird denn als nicht gefunden angezeigt ? Existiert diese Datei auf den Laufwerken ?
Ich bin nämlich noch nicht überzeugt, man verguckt sich ja leicht bei solchen Dateinamen.

Wenn Du meinst 'ja', dann kopiere mal
- den Eintrag in der Inputdatei
- die Meldung
- den Dateinamen der Datei auf dem Laufwerk / den Laufwerken
in zB. eine Textdatei, vergleiche genau, überprüfe auch auf Leerzeichen.
Du kannst das ja auch mal hier reinkopieren.

Wichtig ist, daß Du alles wirklich einzeln kopierst (zB über STRG-C ), nicht abschreiben oder zweimal einfügen.
Ein kleiner Trick ist auch, anschliessend in der Textdatei nach dem Dateinamen mit der Suchfunktion zu suchen. Oft genug wird plötzlich einer der Einträge nicht gefunden, obwohl man meint, daß alle drei identisch seien. Ich mach das auch gelegentlich so, wenn ich sonst einfach keinen Unteschied feststellen kann.
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
hey ho.das mit dem doppelt hab ich selber behoben,also hab da 2x das selbe laufwerk angegeben.

was ist aber wenn auf beiden laufwerken ein und die selbe datei (also mit allen dazugehörigen endungen,varianten,etc...) zu finden ist,dann schreibt er die dann doppelt.soll aber auf dem 1. angegebenen laufwerk,also da wo die aktuellere liegt,diese datei dann in die outputdatei schreiben,und die welche er auf dem 2. laufwerk findet dann ignorieren,trotz gleichem namen.

kann ich auch weitere laufwerke hinzufügen???

dieser script schreibt wunderbar das was ich möchte.aber kann man dem noch hinzufügen,das er in der outputdatei hinter jeder nummer noch .txt schreibt???ansonsten mach ich es über einen batch...

alle Dateinamen von beiden Laufwerken werden in eine Liste geschrieben, die Liste wird sortiert, und nur die aktuellsten Dateien werden angezeigt. Dabei gilt:
finde alle Dateien 'baureihe_bauplatz_variante', davon nur die letzte 'issue', davon alle 'material'

Ist das so korrekt vorgesehen?


vollkommen korrekt.

Zitat:
und aber in der outputdatei steht immer noch datei nicht gefunden.

Welcher Dateiname genau wird denn als nicht gefunden angezeigt ? Existiert diese Datei auf den Laufwerken ?
Ich bin nämlich noch nicht überzeugt, man verguckt sich ja leicht bei solchen Dateinamen.


glaube weiß nun woran es liegt.da er ne excel-tab ausliest wird am ende nen " "-zeichen eingefügt und diese bis zu diesem script mitgenommen.denn wenn ich die per hand eintippe (in die inputdatei) ohne sonderzeichen,leerzeichen,... dann schreibt er das nicht mehr hin "datei nicht gefunden" sonst schreibt er ja "datei nicht gefunden ' '" also ne leere datei sozusagen.

und was ist wenn diese dateien welche gefunden werden sollen,verschiedene endungen haben.z.b. txt oder dat oder ...
kann man das irgendwie mit einbinden?

und ist es normal das das finden ne gewisse zeit braucht?liegt es da am laufwerk oder am script oder an der zu findenen datenmenge???
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
Ich schreibs mal so, Du wirst es schon verstehen, denke ich:

weitere Laufwerke hinzufügen:

var locations = {
...
posC: "...",
...
};

function getSortedList()
{
...
var locs = [ locations.posA, locations.posB, locations.posC ];
...
}


-----
.txt anhängen:
function save( list )
{
...
out.push( list[i].n.join("") + ".txt" );
...
}

Allerdings macht das ja keinen Sinn mehr, wenn auch Dateien mit anderen Endungen berücksichtigt werden sollen.
Zur information hierzu:
Die Dateinamen werden in dieser Zeile zerteilt
temp[k].n = temp[k].n.split(".")[0];

Ein schneller Workaround um die Endung für später zu erhalten, wäre:
temp[k].e = temp[k].n.split(".")[1]; // teile .n am Zeichen "." und verwende das 2. Element (nämlich index 1)
temp[k].n = temp[k].n.split(".")[0]; // teile .n am Zeichen "." und verwende das 1. Element (index 0)

Damit steht künftig die Endung (ohne den Punk) in .e zur verfügung, und kann anstelle von ".txt" angehängt werden.

-----
Die Endungen, die gefunden werden, werden in folgender Zeile bestimmt:
function getSortedList()
{
...
temp = getFiles( locs[i], 5, "txt" )[1];
...
}


Wenn Du das "txt" einfach weglässt, findet es glaub ich alle Dateien.
Also nur:
temp = getFiles( locs[i], 5 )[1];


-----
Damit es nur die Datei vom 1. Laufwerk nimmt, müsste man etwas größere Veränderungen vornehmen.
Es sei denn... ich kann gerade nicht überschauen, ob man sich darauf verlassen kann, daß das erste Laufwerk immer zuerst in dem Array steht. Wenn man das könnte, würde es vielleicht helfen, die Zeile:
function findLast( arr )
{
...
temp.push( arr[ i ] );
...
}

zu ändern in
if( i == 0 || arr[ i ].n != arr[ i - 1 ].n ) temp.push( arr[ i ] );


Aber ist es nicht egal, welches Laufwerk verwendet wird ? In der Output datei steht doch gar nicht der Pfad, oder doch ?

-----
Das mit den Leerzeichen aus dem Excel tab ist kein Problem, oder ? Könnte man sicher verbessern, aber wenns funktioniert, ist ja gut.
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
Das mit den Leerzeichen aus dem Excel tab ist kein Problem, oder ? Könnte man sicher verbessern, aber wenns funktioniert, ist ja gut.


das kriege ich über das batch hin,das es da diese "letzte zeile" mit dem leerzeichen nicht mit schreibt...

weitere Laufwerke hinzufügen:


var locations = {
...
posC: "...",
...
};

function getSortedList()
{
...
var locs = [ locations.posA, locations.posB, locations.posC ];
...
}



-----
.txt anhängen:

function save( list )
{
...
out.push( list[i].n.join("") + ".txt" );
...
}


es ist nur so,das ich festgestellt hab das es bei einigen weitere laufwerke benötigt...wenn ich es allgemein mache,dann ist es egal wie viele laufwerke ich angebe oder???

das mit dem txt anhängen (oder genauer gesagt .nc) ist nur so,dass es dann bei der weiteren verwenung zu keinen missverständnissen in meinem programm gibt... und da auf nummer sicher zu gehen sollte es dran sein.kann es auch über einen batch machen aber warum mehrere arbeitsgänge drauss machen wenn es mit einem geht...

Damit es nur die Datei vom 1. Laufwerk nimmt, müsste man etwas größere Veränderungen vornehmen.
Es sei denn... ich kann gerade nicht überschauen, ob man sich darauf verlassen kann, daß das erste Laufwerk immer zuerst in dem Array steht. Wenn man das könnte, würde es vielleicht helfen, die Zeile:

function findLast( arr )
{
...
temp.push( arr[ i ] );
...
}



zu ändern in

if( i == 0 || arr[ i ].n != arr[ i - 1 ].n ) temp.push( arr[ i ] );




Aber ist es nicht egal, welches Laufwerk verwendet wird ? In der Output datei steht doch gar nicht der Pfad, oder doch ?


naja egal ist es nicht ganz...die dateien im ersten laufwerk ist das laufwerk,wo die bearbeiteten dateien zu erst eingelesen werden.das 2. laufwerk ist das wo sie dann aufgeräumt werden.deshalb ist das erste laufwerk so wichtig.denn wenn 2 dateien identisch sind,dann sind aber auf dem 1. laufwerk die aktuellsten davon...

kann ich dich in der hinsicht weiter "belästigen"???wenn ja hätt ich da noch weitere fragen dazu bzw weitere dinge um diesen script für mich perfekt zu machen...

bisher aber einen wirklich großen dank an dich.es hat mir sehr geholfen...

also da wäre ne frage,wenn in der input datei mehrere dateien drin stehen welche völlig identisch sind,dann soll er diese zusammenzählen,also:

a123_45678_000
a123_45678_000
a123_45678_000
a123_45678_000
a123_45678_000
a123_45678_000
a123_45678_000

endergebnis ist dann der hier:

a123_45678_000AB_10b_7.nc

also vorher die gefundene datei wie gehabt,aber dahinter mit "_n-ter anzahl"...

klar kann man sagen,warum macht man es nicht selber.nun ja,die excel-tab gibt es halt so vor,das mehrere nummern zwar identisch sind,aber halt jede einzeln aufgelistet wird...
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
weitere Laufwerke hinzufügen:
Ja, Du kannst soviele Laufwerke hinzufügen, wie Du willst.

.txt anhängen:
Das ist jetzt geklärt, oder ?

nur die Datei vom 1. Laufwerk
Aber ist es nicht egal, welches Laufwerk verwendet wird ? In der Output datei steht doch gar nicht der Pfad, oder doch ?

Ich meine, in der Output datei steht ja nur der Dateiname. Wenn der auf beiden Laufwerken identisch ist, ist es egal, aus welcher der listen man den Dateinamen nimmt, um ihn in die outputdatei zu schreiben.

Zähler:
Meinst Du das so ?:
- in der Input datei stehen mehrere Identische Namen
- in der output datei soll hinter jeder Datei die Anzahl aller entsprechenden Einträge in der input datei stehen

Es kommt mir nur seltsam vor, darum frage ich lieber nochmal. Es sollen nicht die gefundenen Dateien gezählt werden, sondern die Einträge in der Inputdatei, richtig ?

kann ich dich in der hinsicht weiter "belästigen"?

Ich hab ja Spaß daran. Ich helfe gerne weiter, wenn ich Zeit habe.
Aber ich empfehle, daß Du Dir ganze genau Gedanken machst, was das Script jetzt oder später vielleicht können soll. Ich hätte vermutlich ganz anders angefangen, wenn ich von Anfang an richtig verstanden hätte, worum es geht. ZB wäre es sehr leicht gewesen, so einen Zähler einzubauen. Im Nachhinein ist es viel komplizierter, oder aber man müsste das ganze Script umbauen.
...