Sign in to follow this  
Followers 0
emendelson

Ftp Inetget With Wildcard?

3 posts in this topic

I'm trying to include a routine in a script that can download the current version of the Ghostscript Postscript interpreter, which is always found here:

ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/current/

and always a filename in this format:

gs853w32.exe

where 853 is the current version (8.53).

Since the current version changes from time to time, I want to be able to download whatever file is in there named gs???w32.exe.

Obviously, this kind of thing won't work, because InetGet requires a filename:

InetGet("ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/current/gs???w32.exe", "gsinstall.exe", 1)

But I wonder what the alternative might be? Possibly some way of reading this page:

http://www.cs.wisc.edu/~ghost/

and seeing what numbers are on the end of the line that begins "Obtaining AFPL Ghostscript" or reading the HTML code to test these two lines:

<li><b><a href="doc/AFPL/get853.htm">Obtaining AFPL Ghostscript

8.53</a></b></li>

Any help would be greatly appreciated.

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Well if you are going to download the source to a file you could use this, just uncomment the example $h_FRead and take out the $h_FRead = $s_FilePath

$HtmlCode = '<li><b><a href="doc/AFPL/get853.htm">Obtaining AFPL Ghostscript 8.53</a></b></li>'
$GetVersion = _StringRegExp_Between($HtmlCode, "Obtaining AFPL Ghostscript", "</a>")
If IsArray($GetVersion) Then
    MsgBox(0, '', StringStripWS($GetVersion[0], 8))
;InetGet("ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/current/gs" & StringStripWS($GetVersion[0], 8) & "w32.exe", "gsinstall.exe", 1)
EndIf

Func _StringRegExp_Between($s_FilePath, $s_Start, $s_End)
    $h_FRead = $s_FilePath; Only using this as an example, since you would be downloading the source anyway uncomment next line and take this one out
  ;$h_FRead = FileRead($s_FilePath, FileGetSize($s_FilePath))
    $a_Array = StringRegExp($h_FRead, '(?:' & $s_Start & ')(.*?)(?:' & $s_End & ')', 3)
    If Not @error Then Return $a_Array
EndFunc

Edit:

Requires Beta

Edited by SmOke_N

[center]Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.[/center]

Share this post


Link to post
Share on other sites

Well if you are going to download the source to a file you could use this, just uncomment the example $h_FRead and take out the $h_FRead = $s_FilePath

$HtmlCode = '<li><b><a href="doc/AFPL/get853.htm">Obtaining AFPL Ghostscript 8.53</a></b></li>'
$GetVersion = _StringRegExp_Between($HtmlCode, "Obtaining AFPL Ghostscript", "</a>")
If IsArray($GetVersion) Then
    MsgBox(0, '', StringStripWS($GetVersion[0], 8))
;InetGet("ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/current/gs" & StringStripWS($GetVersion[0], 8) & "w32.exe", "gsinstall.exe", 1)
EndIf

Func _StringRegExp_Between($s_FilePath, $s_Start, $s_End)
    $h_FRead = $s_FilePath; Only using this as an example, since you would be downloading the source anyway uncomment next line and take this one out
 ;$h_FRead = FileRead($s_FilePath, FileGetSize($s_FilePath))
    $a_Array = StringRegExp($h_FRead, '(?:' & $s_Start & ')(.*?)(?:' & $s_End & ')', 3)
    If Not @error Then Return $a_Array
EndFunc

Edit:

Requires Beta

I think that's the answer, SmOke_N, thank you!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0