Take a look at MrGuests code snippet which looks good.

Now I'd like to take the time and go through your code:
Code:
(1)        while ( (file_str_read(fhandle, test_str)) != -1)
(2)	   {
(3)		  file_str_read(fhandle, test_str);
(4)  		  dialog[count] = test_str;
(5)		  count += 1;
(6)	   }

Line 1: You read from the file stored in fhandle and save it in the String test_str. Remember: test_str is now filled with the first piece of your file until the first delimiter. Now you check if the end of file is reached.
Line 3: Again you read from file. So now test_str is filled with the second piece of your file (until the second delimiter, or EOF).
And this is the point where your method is failing, because you skip the first piece.

So read/use and learn from MrGuest's code snippet.