egalvez 0 Posted April 10, 2005 Hi. In a program I'm writing I have to assign the contents (source) of an HTML file to a variable and I have to know exactly how many characters there are in the file. As a base for the code below, I used the code in the AutoIt3 help file for FileRead.$file = FileOpen("somefile.shtml", 0) While 1 $chars = FileRead($file, 1) $fileContents = $fileContents & $chars If @error = -1 Then ExitLoop Wend $numCharsread = StringLen($fileContents)The HTML file has tens of thousands of characters in it, so the process of reading takes quite some time (2 to 3 minutes on my PIII 550 Mhz/320 Mb RAM PC). I'm wondering if there's a much faster way of getting the file's text assigned to a variable. I'm thinking that if there's no better way, I could have Notepad open the file, do a Select All, do a copy with CTRL-C, then assign CipGet to a variable. The problem with that is it's hardly transparent to the user, since they'd have to see Notepad opening, the Select All taking place, and Notepad closing. Plus, it's my understanding that anytime you have to depend on sending keystrokes, it's a risk.One of FileRead's parameters is the number of characters to read. Is there a way to specify that all characters in the file should be read, so looping through the characters one by one is not necessary?Please advise. Share this post Link to post Share on other sites
MHz 80 Posted April 10, 2005 Read the whole file at once. Use FileGetSize() as the second parameter. $file = FileOpen("somefile.shtml", 0) $chars = FileRead($file, FileGetSize($file)) Share this post Link to post Share on other sites
egalvez 0 Posted April 10, 2005 Thank you. Since FileGetSize returns the file size in bytes, is the size in bytes the same as the total number of characters in the file? I know that's a basic computer question I should know, but I don't. Share this post Link to post Share on other sites
SlimShady 1 Posted April 10, 2005 Thank you. Since FileGetSize returns the file size in bytes, is the size in bytes the same as the total number of characters in the file? I know that's a basic computer question I should know, but I don't.<{POST_SNAPBACK}>Yes. MHz's post was very clear about that. Share this post Link to post Share on other sites
egalvez 0 Posted April 10, 2005 Thank you. I've implemented FileGetSize and it makes a tremendous difference. Share this post Link to post Share on other sites
egalvez 0 Posted April 10, 2005 (edited) One note. The code$chars = FileRead($file, FileGetSize($file))provided by MHz ddn't work using $file in FileGetSize($file), i.e., the second instance of $file needed to be replaced with an actual filename. Once I did so, it worked great. Thank you MHz and SlimShady. Edited April 10, 2005 by egalvez Share this post Link to post Share on other sites