Из вашего вопроса непонятно, откуда начинаются данные или зачем вам текстовый файл. Однако я отвечу на один из ваших пунктов. Есть много способов прочитать текстовый файл. Вот как я обычно это делаю:
Сначала выпишите файл со схемой
using (StreamWriter sw = new StreamWriter(sPath + @"\schema.ini"))
{
sw.WriteLine("[" + sFile + "]");
sw.WriteLine("ColNameHeader=False");
sw.WriteLine("Format=FixedLength");
sw.WriteLine("Col1=CO_ID Text Width 2");
sw.WriteLine("Col2=AGENCY_CD Text Width 10");
// lines for additional columns here
sw.Close();
sw.Dispose();
}
Затем считайте данные в DataSet, используя ODCB.
string cs = @"Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" + sPath;
OdbcConnection cn = new OdbcConnection(cs);
string q = @"select * from [" + sNewFN + "]";
OdbcDataAdapter da = new OdbcDataAdapter(q, cn);
da.Fill(ds, "MyTable");
Таблица ds.Tables ["MyTable"] является источником данных для сетки данных
Информация об этом методе здесь:
http://msdn.microsoft.com/en-us/library/ms714091%28v=VS.85%29.aspx