I have added code formatting tags to your post to make the code more readable. Please do so for us in future.
If you had taken my original advice then you'd already be doing what you want. I said to read the lines of the file in a loop. You're not.
This:
Dim MyFileLine As String = Split(Tr.ReadToEnd(), vbCrLf)(3) 'This return the fourth line from the file
is very, very bad. No doubt you have never read the documentation for that Split method. It says this about the second parameter:
Any single character used to identify substring limits.
You have specified a String containing two characters: a carriage return and a line feed. The method will simply ignore all but the first character in the String, so you're actually splitting on the carriage return only. Some files will use a carriage return and a line feed as a line break and some will use just a line feed but none will use just a carriage return. Your code will fail to split some files altogether and the rest it will leave the line feeds in the lines. Bad, bad, bad!
If you wanted to split the contents yourself then you should at least have called the Strings own Split method. If you want to split a String then ALWAYS call Split on the String itself; NEVER call that Split method and pass the String as an argument. They are two different methods and the one you used is a VB6 hangover. By calling the Split method of the String itself, you have the option of specifying multi-character delimiters and even multiple delimiters. That means that you could specify to split on line feeds and carriage return/line feed pairs, thus supporting all files.
That said, you shouldn't be splitting the String yourself anyway. There are basically three acceptable ways to get the lines of a text file:
1. Create a StreamReader and call ReadLine in a loop. This is what I meant earlier when I said to read the lines of the file in a loop. It will return the file to you one line at a time and keep the file open and locked until the end.
2. Call File.ReadAllLines. It will return the lines of the file to you as a String array and close the file immediately. This allows you random access to the file contents to add, edit and delete lines. Once you're done, you can write the whole lot back to the original file if desired by calling File.WriteAllLines.
3. Call File.ReadLines. It will return the lines to you as an enumerable list of Strings that you can loop through in a read-only, forward-only manner. It will keep the file open and locked until you're done.
Option 2 is often the best when you want to actually edit an existing file because it doesn't lock the file so you can write the new data out without need for a temp file. That becomes an issue for large files though, because you need to store the entire file contents in memory.