🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.vbasic
3 messages
3 total messages Started by slawek Tue, 13 Apr 2010 19:22
Jak to zrobić w VBS
#104602
Author: slawek
Date: Tue, 13 Apr 2010 19:22
29 lines
1945 bytes
Chce uruchamiać skryptem program, skrypt jest mniej więcej taki - niestety 
nie jest tak prosto jak w bash, bo nie da się łatwo mieć tablicy/listy. Czy 
można ten skrypt poprawić, aby działał - tzn. nieznacznie zmienić, a nie np. 
rozpisać dane(1)="1.5": dane(2)="2.5" itd.?

function Command(cmd) 
' to działa, jest ok
  Dim process
  Set process = shell.Exec("%ComSpec% /c """ & cmd & """")
  Command = process.stdout.ReadAll 
' synchroniczne czytanie
end function

dane = {"1.5","2.5","3.0","5.0","15.0"} 
'**** w tym miejscu nie działa, nie ta składnia, w VBS nie ma takich 
rzeczy?!

for each d in dane 
'**** oczywiście i to nie wykona się, jeżeli nie ma tablicy dane
   output = "plik-" & d & ".txt"
   Command("echo " & parameters & " | a.exe > " & output)
 next

 Wscript.Quit


TIA
slawek
 
Re: Jak to zrobić w VBS
#104603
Author: Przemysław Rachwał
Date: Tue, 13 Apr 2010 19:45
33 lines
1902 bytes
W dniu 2010-04-13 21:22, slawek pisze:
> Chce uruchamiać skryptem program, skrypt jest mniej więcej taki -
> niestety nie jest tak prosto jak w bash, bo nie da się łatwo mieć
> tablicy/listy. Czy można ten skrypt poprawić, aby działał - tzn.
> nieznacznie zmienić, a nie np. rozpisać dane(1)="1.5": dane(2)="2.5" itd.?
>
> function Command(cmd) ' to działa, jest ok
> Dim process
> Set process = shell.Exec("%ComSpec% /c """ & cmd & """")
> Command = process.stdout.ReadAll ' synchroniczne czytanie
> end function
>
> dane = {"1.5","2.5","3.0","5.0","15.0"} '**** w tym miejscu nie działa,
> nie ta składnia, w VBS nie ma takich rzeczy?!
>
> for each d in dane '**** oczywiście i to nie wykona się, jeżeli nie ma
> tablicy dane
> output = "plik-" & d & ".txt"
> Command("echo " & parameters & " | a.exe > " & output)
> next
>
> Wscript.Quit
>
>
> TIA
> slawek
>
>

dane = array("1.5","2.5","3.0","5.0","15.0")

-- 
Przemek
Re: Jak to zrobić w VBS
#104604
Author: slawek
Date: Wed, 14 Apr 2010 13:51
19 lines
1975 bytes
Użytkownik "Przemysław Rachwał" <przemyslaw.rachwal@onet.pl> napisał w 
wiadomości grup dyskusyjnych:hq2hl9$8ia$3@news.onet.pl...
> dane = array("1.5","2.5","3.0","5.0","15.0")

Dzięki, skrypt jest zresztą troszkę bardziej skomplikowany (nie chciałem 
niepotrzebnie gmatwać i usunąłem zbędne fragmenty) - nie tylko uruchamia 
program (z gatunku number cruncher) dla wielu zestawów parametrów, ale 
jeszcze sprawdza, czy przypadkiem nie istnieje już plik wyjściowy (tzn. czy 
dany zestaw parametrów jest już policzony). A parametrów jest około pół 
tuzina (czyli 6^5 albo 6^5 ~ 1000 razy albo i więcej się uruchamia program, 
za każdym razem od nowa i całkiem niezależnie).

Cała przyjemność w tym, że mogę teraz zapodać skrypt i samo się liczy... a 
jak się przerwie, to nie ma ryzyka że nadpisze się dane (jeden zestaw 
parametrów to pół godziny liczenia na jednym rdzeniu).

slawek
 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads