EXEC is a wonderful thing, lighter than SHELL, but it needs things 
passed as elements of a string array and that is making for some ugly code.

Say for example you want to play two videos as a playlist in VLC, in 
exec the command might look like this;

EXEC["vlc","--intf","rc", "Video1.avi","Video2.avi"]

But what if you had different quantities of videos to play, lets say 
next time you needed to play 4 videos? How would you use EXEC to do this?


I thought of building the string and embedding the quotes in it like this;

ExecString = chr$(34)& "vlc" & chr$(34) & "," & chr$(34) & "--intf" & 
chr$(34) & "," & chr$(34) & "rc"& chr$(34) & ","
For X= 0 TO sFile.Count - 1
       ExecString = ExecString & chr$934) & sFile[X] & chr$(34)
       IF X < sFile.Count -1 then
          ExecString = ExecString & ","
      End IF
NEXT

Which would result in a string that looks like this;

"vlc", "--intf", "rc", "video1.avi", "video2.avi"

Nope. It sees the one string as one element when what I want is the 
contents of the string to be inserted as multiple elements.

At the moment I am fetching the video file names from a directory 
listing, splitting that up into an array, then checking the number of 
elements in the array and using a case statement to do the work...

SELECT CASE sFile.Count
           CASE 1
                mpProcessHandle = EXEC ["vlc", "--intf", "rc", sFile[0]] 
FOR INPUT OUTPUT AS "VLC"
           CASE 2
                mpProcessHandle = EXEC ["vlc", "--intf", "rc", sFile[0], 
sFile[1]] FOR INPUT OUTPUT AS "VLC"
           CASE 3
                mpProcessHandle = EXEC ["vlc", "--intf", "rc", sFile[0], 
sFile[1], sFile[2]] FOR INPUT OUTPUT AS "VLC"
           CASE 4
                mpProcessHandle = EXEC ["vlc", "--intf", "rc", sFile[0], 
sFile[1], sFile[2]] FOR INPUT OUTPUT AS "VLC"
END SELECT

It ain't pretty. "sFile" is a string array derived from another string 
that contains the names of videos which in my case are delimited by 
spaces. Definetly the brute-force/bulldozer approach, big, ugly, and 
cumbersome, but it does work. Does anyone else know of a more elegant 
solution?

Regards
Steve.

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to