Je convertis un fichier CSV XLS 2 avec une commande système dans Ruby.Comment attendre la fin de la commande système
Après la conversion, je suis en train de traiter les fichiers CSV, mais la conversion est toujours en cours lorsque le programme veut traiter les fichiers, alors ils sont inexistants à ce moment-là. Est-ce que quelqu'un peut me dire s'il est possible de laisser Ruby attendre le bon moment pour que la commande système se termine?
En ce moment je suis en utilisant:
sleep 20
mais si elle prendra plus de temps une fois, il ne convient pas bien sûr.
Ce que je fais est précisément ceci:
#Call on the program to convert xls
command = "C:/Development/Tools/xls2csv/xls2csv.exe C:/TDLINK/file1.xls"
system(command)
do_stuff
def do_stuff
#This is where i use file1.csv, however, it isn't here yet
end
Veuillez nous montrer un exemple de votre code actuel ou expliquer la fonction. Autant que je sache, les appels système ne sont pas seulement "déchargés", donc je pense que vous le déchargez d'une manière ou d'une autre. –
La commande système renvoie-t-elle le succès? Affectez la valeur de retour du système à une variable, puis vérifiez son contenu. La commande système doit s'exécuter de manière synchrone. –
Lorsque j'attribue le système (commande) à une variable, il retourne immédiatement vrai. Donc, ce n'est pas une option non plus – Ignace