Text an die Funktion „Textdatei speichern“ anhängenHallo zusammen,
Ich verwende diese Funktion als Teil der FOR-Schleife.
If( File Exists(location)
csvlist[N Items(FilesIndex)]= Open(location),
//else below
continue() & // I am not sure this & function works.
Save Text File( path || "\" || "error.txt", "
\!"File doesnt exist\!";
" ||char(location)) ;
);
Grundsätzlich möchte ich den Speicherort öffnen, wenn eine Datei vorhanden ist. Wenn nicht, möchte ich eine Textdatei erstellen und die Schleife wiederholen. Außerdem möchte ich weiterhin denselben Fehler anhängen. txt-Datei, ohne sie jedes Mal zu ersetzen.
Weiß jemand, wie man das macht? Ich schätze deine Hilfe sehr.
Danke schön.
Betreff: Text an die Funktion „Textdatei speichern“ anhängenDie Logik zu Ihrem Code ist da.Sie scheinen einfach nicht die Syntax oder die Definitionen im Skriptindex nachzuschlagen.
If( File Exists(location)
Ihnen fehlt ein Komma und/oder eine Vervollständigung
If( File Exists(location),
oder
If( File Exists(location) == 1,
Ich verstehe die Logik der nächsten Zeile nicht
csvlist[N Items(FilesIndex)]= Open(location),
So wie es geschrieben ist, würde der Zeiger auf jede Datentabelle übereinander geschrieben, es sei denn, irgendwo in Ihrem Code wird FilesIndex zwischen den geöffneten Datentabellen hinzugefügt.Ich schlage eine einfachere und sicherere Methode vor
dt = Open(location);
insert into(csvlist,dt),
„Weiter“ ist nicht erforderlich, der Code wird automatisch fortgesetzt
Ihre Funktion „Textdatei speichern“ ist syntaktisch in Ordnung, wenn Sie möchten, dass jede Ausführung die vorherige Ausführung der Zeile überschreibt.Werfen Sie einen Blick in den Scripting-Index, um zu erfahren, wie Sie dies verhindern können, wenn Sie der Datei etwas hinzufügen möchten, anstatt darüber zu schreiben.
Ich würde außerdem vorschlagen, dass Sie, wenn Sie möchten, dass die Fehlerzeilen zum Code hinzugefügt werden, jeder Zeile „\!n“ hinzufügen, um jede Auflistung in eine neue Zeile zu zwingen.
Betreff: Text an die Funktion „Textdatei speichern“ anhängenContinue() ist eine Art Pause. Es iteriert sofort und überspringt alles, was darüber hinausgeht. Zum Beispiel
for(i=1, i<=50, i++,
errortxt = ""
If( File Exists( location ),
csvlist[N Items( FilesIndex )] = Open( location )
, //else
//could just concat one text file and save after the for loop
errortxt ||= "File doesnt exist" || Char( location ) ) || "\!n" //just a newline to make it more readable
//or if you just want to append to the file
Save Text File( path || "\" || "error.txt",
"File doesnt exist" || Char( location ) ) || "\!n",
mode("append")
);
Continue();
);
print("Doing other stuff")
);<BR />//if using the errortxt method<BR />Save Text File( path || "\" || "error.txt", errortxt);<BR />
Wenn in diesem Skript die Datei nicht gefunden wird, wird es entweder an die Datei angehängt oder (wirklich beides) den Fehler mit der Fehlertxt-Zeichenfolge verketten. Sobald Continue() erreicht wird, wird die for-Schleife sofort erneut gestartet. Drucken überspringen („Andere Dinge erledigen“). Schauen Sie sich den Skriptindex unter Hilfe>>Skriptindex an. Dort finden Sie eine wirklich gute Dokumentation und Beispiele zu den Funktionen und ihrer Funktionsweise.
Ich hoffe, das hat geholfen.
Betreff: Text an die Funktion „Textdatei speichern“ anhängenDer Skriptindex ist ein großartiger Ort, um nach JSL-Funktionen zu suchen.
Scripting Index showing mode("append")Scripting Index showing mode("append")Skriptindex zeigt den Modus („anhängen“) an
Wahrscheinlich möchten Sie continue() nicht so verwenden. Continue() und Break() sind Anweisungen in JSL, die zum Ende der enthaltenden Schleife springen und entweder die Schleife fortsetzen oder aus der Schleife ausbrechen. Möglicherweise möchten Sie
for(i=1,i<10,i+=1,
if( condition,
doSomethingIfTrue();
doMoreThingsIfTrue();
, // else
doSomethingIfFalse();
continue();
); // end of if statement
codeThatIsSkippedByContinue();
); // end of for loop