Konwertuję plik CSV XLS 2 za pomocą polecenia systemowego w Ruby.Jak czekać na zakończenie polecenia systemowego
Po konwersji przetwarzam pliki CSV, ale konwersja jest nadal uruchomiona, gdy program chce przetworzyć pliki, więc w tym czasie nie istnieją.
Czy ktoś może mi powiedzieć, czy możliwe jest, aby Ruby odczekał odpowiedni czas na zakończenie polecenia systemowego?
Teraz używam:
sleep 20
ale jeśli potrwa to dłużej, raz, to nie jest w porządku, oczywiście.
Co zrobić konkretnie to:
#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
Pokaż nam przykładowy kod lub wyjaśnij funkcję. O ile mi wiadomo, wywołania systemowe nie są po prostu "odciążone", więc myślę, że jakoś je odkładasz. –
Czy polecenie systemu zwraca sukces? Przypisz wartość zwracaną systemu do zmiennej, a następnie sprawdź jej zawartość. Polecenie systemowe powinno działać synchronicznie. –
Kiedy przypisuję system (polecenie) do zmiennej, zwraca ona natychmiast true. Więc to nie jest opcja, albo – Ignace