Sign in to follow this  
Followers 0
unknown12

Reading VMG

10 posts in this topic

How can I do this?

I know people will say to try it myself, but i've tried various functions, and searched these very forums. They all seem to only return the first charachter of the file.

I've attached a sample file, but added .txt to the end so that it'd upload.

Thanks in advance.

1049721.vmg.txt

Share this post


Link to post
Share on other sites



ummm remove the .txt , use fileread and if you dont want the spaces do a StringReplace

$file = '1049721.vmg'
$string = StringReplace(FileRead($file)," ","")
MsgBox(0,"Test",$string)

Share this post


Link to post
Share on other sites

I wish it were that simple. Try it yourself, and you'll see it only returns "B".

Share this post


Link to post
Share on other sites

The file contains null characters and is in binary:

Dim $b_readdata
Dim $b_fixeddata
$b_readdata = FileREad("1049721.vmg")
$b_fixeddata = StringReplace($b_readdata,Chr(0),"")
Msgbox(0,"Data:",$b_fixeddata)
$ho_output = FileOpen("1049721-translated.vmg",2)
FileWrite($ho_output,$b_fixeddata)
FileClose($ho_output)

"So man has sown the wind and reaped the world. Perhaps in the next few hours there will no remembrance of the past and no hope for the future that might have been." & _"All the works of man will be consumed in the great fire after which he was created." & _"And if there is a future for man, insensitive as he is, proud and defiant in his pursuit of power, let him resolve to live it lovingly, for he knows well how to do so." & _"Then he may say once more, 'Truly the light is sweet, and what a pleasant thing it is for the eyes to see the sun.'" - The Day the Earth Caught Fire

Share this post


Link to post
Share on other sites

o your write my bad :P

$file = '1049721.vmg'
$string = StringReplace(FileRead($file),Chr(0),"")
MsgBox(0,"Test",$string)

even though kandie already did it :D

Share this post


Link to post
Share on other sites

Thanks, Kandie man and Thatsgreat.

Share this post


Link to post
Share on other sites

Ok, so i've got it into a string now, and with that comes another problem :P Doing StringSplit($string,'END:VBODY') returns a 50+ part array, whereas i'd expect it to only return 2 parts, seeing as there is only 1 instance of END:VBODY.

Thanks.

Share this post


Link to post
Share on other sites

Any ideas?

Share this post


Link to post
Share on other sites

for some reason the flag default of StringSplit = 0 meaning it will split at every char meaning at every E N D : V B O D Y

#include <Array.au3>
Dim $b_readdata
Dim $b_fixeddata
$b_readdata = FileRead("1049721.vmg")
$b_fixeddata = StringSplit($b_readdata,"END:VBODY",1)
_ArrayDisplay($b_fixeddata,'')

Share this post


Link to post
Share on other sites

Thanks, adding ",1" seems to have worked.

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