How many lines are you talking about?
The chances are that you are exceeding the 1000 "slots" that you have assigned in
data
when you Split all the lines - when you have the
continue
code in there you use 1/10 the number of lines. Try using a collection instead of an array:
List<string[]> data = new List<string[]>();
int counter = 0;
do
{
counter++;
line = reader_trajectoires.ReadLine();
if (line == null) break;
data.Add(line.Split(new string[] { "\t" }, StringSplitOptions.RemoveEmptyEntries));
} while (true);
Note the change to the loop as well.