С++ Builder - Считать значения из файла

Задача цифровой фильтрации данных Дан файл data.dat с 2 колонками
0,001 6,999772003
0,002 6,999088046
0,003 6,997948231
0,004 6,996352731
....
1 колонка Время 2 колонка Значение сигнала в момент времениНе получается при считывании поулучать float значения
void GetString(int h, AnsiString *st)
{
 unsigned char buf[256];
 unsigned char *p = buf;
 int n;
 int len = 0;

 do // удаление пробелов
 n = FileRead(h,p,1);
 while ((n != 0) && (*p == ' '));

 while ((n != 0) && (*p != ' '))
 {
 if ( *p == '\r')
 {
 n = FileRead(h,p,1);
 break;
 }
 ++len;
 p++;
 n = FileRead(h,p,1);
 *p = '\0';
 if (len != 0)
 st->printf("%s",buf);
 }
}
....
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 h = FileOpen("data.dat",fmOpenRead);
 if (h == -1)
 {
 ShowMessage("File open error");
 return;
 }
 AnsiString st;
 GetString(h,&st);
 Memo1->Lines->Add(st);
 GetString(h,&st);
 Memo1->Lines->Add(st);
}
В окне вывода появляются не те значения, что данны в файле. Подскажите, что не так? Спасибо.
1 ответ

Спасибо всем, кто обратил внимание на мою задачу. Решение оказалось как обычно лёгким и неожиданным.Тему можно закрывать.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString st_s;
 AnsiString st_c;
 int ls;
 float x,y;
 h_s = FileOpen("step.dat",fmOpenRead);
 h_c = FileOpen("chart.dat",fmOpenRead);
 do
 {
 ls = GetLine(h_s,&st_s);
 ls = GetLine(h_c,&st_c);
 x = StrToFloat(st_s);
 y = StrToFloat(st_c);
 Chart1->Series[0]->AddXY(x,y);
 } while (ls);
 FileClose(h_s);
 FileClose(h_c);
}
.........
int GetLine(int h,AnsiString *st)
{
 unsigned char buf[20];
 unsigned char *p=buf;
 int n;
 int len=0;
 n = FileRead(h,p,1);
 while ( n != 0 )
 {
 if ( *p == '\r')
 {
 n = FileRead(h,p,1);
 break;
 }
 p++;
 ++len;
 n = FileRead(h,p,1);
 }
 *p = '\0';
 if( len != 0 )
 st->printf("%s",buf);
 return len;
}
Вот. Вдруг понадобиться кому нибудь.