Ajouter du texte à la fonction Enregistrer un fichier texteSalut tout le monde,
J'utilise cette fonction dans le cadre de la boucle FOR.
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)) ;
);
Fondamentalement, ce que je veux faire, c'est ouvrir l'emplacement si le fichier existe, sinon, je veux créer un fichier texte et parcourir la boucle. De plus, je souhaite continuer à ajouter la même erreur. txt sans le remplacer à chaque fois.
Quelqu'un sait-il comment faire ça? J'apprécie vraiment votre aide.
Merci.
Re : Ajouter du texte à la fonction Enregistrer un fichier texteLa logique de votre code est là.Vous ne semblez tout simplement pas rechercher la syntaxe ou les définitions dans l'index des scripts.
If( File Exists(location)
il vous manque une virgule et/ou un complément
If( File Exists(location),
ou
If( File Exists(location) == 1,
Je ne comprends pas la logique de la ligne suivante
csvlist[N Items(FilesIndex)]= Open(location),
de la façon dont il est écrit, le pointeur vers chaque table de données serait écrit les uns sur les autres, à moins que quelque part dans votre code, FilesIndex ne soit ajouté entre les tables de données ouvertes.Je suggère une méthode plus simple et plus sûre
dt = Open(location);
insert into(csvlist,dt),
il n'y a pas besoin de "continuer", le code continuera automatiquement
Votre fonction "Enregistrer le fichier texte" est syntaxiquement correcte, si vous souhaitez que chaque exécution écrase l'exécution précédente de la ligne.Jetez un œil à l'index des scripts pour voir comment éviter cela si vous souhaitez ajouter au fichier plutôt que d'écrire dessus.
Je suggérerais également que si vous souhaitez que les lignes d'erreur soient ajoutées au code, vous ajoutez "\! n" à chaque ligne, pour forcer chaque liste sur une nouvelle ligne.
Re : Ajouter du texte à la fonction Enregistrer un fichier texteContinue() est un peu comme break. Il itère immédiatement et ignore tout ce qui se passe au-delà. Par exemple
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 />
Dans ce script, s'il ne trouve pas le fichier, il l'ajoutera au fichier ou (en réalité, il fait les deux) concatènera l'erreur à la chaîne errortxt. Une fois qu'il atteint Continue(), il redémarrera immédiatement la boucle for. Sauter l'impression ("Faire autre chose"). Consultez l'index de script sous Aide >> Index de script, il contient une très bonne documentation et des exemples sur les fonctions et leur fonctionnement.
J'espère que cela a aidé.
Re : Ajouter du texte à la fonction Enregistrer un fichier texteL'index des scripts est un excellent endroit pour rechercher des fonctions JSL.
Scripting Index showing mode("append")Scripting Index showing mode("append")Index de script affichant le mode ("append")
Vous ne voulez probablement pas utiliser continue() comme ça. Continue() et Break() sont des instructions en JSL qui sautent à la fin de la boucle conteneur et continuent la boucle ou sortent de la boucle. Peut-être que tu veux
for(i=1,i<10,i+=1,
if( condition,
doSomethingIfTrue();
doMoreThingsIfTrue();
, // else
doSomethingIfFalse();
continue();
); // end of if statement
codeThatIsSkippedByContinue();
); // end of for loop