Имеется текстовый файл, в котором есть данные, которые нужно считать, а также куча лишних символов. Данные которые необходимо считывать находятся на след. строке после строки из "***====...===". Между цифрами (нужными символами) есть пропуски и знаки препинания. Таких вот кусков с "***====...===" и необходимыми символами по файлу около 500 шт. Позже мне с ними нужно сделать мат. операции и выводить в таблицу.
У меня получилось считать первый такой вот кусок, но никак не могу додуматься как мне это запихнуть в цикл чтобы считать все куски.
Подскажите пожалуйста))
Вот кусок текста, который я считываю:
Код :
 
***================================ =================================== =================================== =========================
Код:
 
 00.00 2012-03-29 SM1 BR4 SNR222067 BNR 1:25.0:25.00:2700:52. 1:57.28: 8. 0: 0: 7: 991:   0: 850:   0:62.40: 2700:  4:   0.:13174.
 PNR  74 BKZ 2 STSORT354  250* 1550* 2300:25.0:25.00:2617:53. 4:59. 4: 1.49: 9: 0:1008: 724: 858: 834:    1:3678.:  1: 830.: 3678.
 
 :NSOV:  13:NAOV:   0:NSOF:  57:NAOF:  33:DSOV:2000.00:DAOV:1000.00:DSOF:2089.60:DAOF: 986.30:BBRG:
 :NSUV:  56:NAUV:   0:VSUF:  46:NAUF:  34:DSUV:2000.00:DAUV:1000.00:DSUF:2012.60:DAUF: 987.00:7.03:
 
***================================ =================================== =================================== =========================
00.01 2012-03-29 SM1 BR4 SNR222067 BNR 2:25.0:24.98:2700:53.22:58.50: 8. 0: 0: 7: 991: 0: 850: 0:62.65: 2700: 4: 0.:13182.

Вот код программы:
Код :
int i=0, n=0, s=0;
    char *t;
    char *hour;
 
    TStrings * slist =new TStringList;
    if ( OpenDialog1->Execute())
    {
        HANDLE hFile = CreateFile(OpenDialog1->FileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if(hFile==0) return;
        unsigned long l;
        unsigned long size;
        size = GetFileSize(hFile, NULL);
        t = new char [size];
        ReadFile(hFile, t, size, &l, NULL);
 
        CloseHandle(hFile);
        //t[i][n]=LoadFromFile(OpenDialog1->FileName);
    }
    char temp[255];
 
    slist->LoadFromFile(OpenDialog1->FileName);
    s = slist->Count;
    hour = new char [s];
    Edit5->Text=s;
 
    for(int i; i < s; i++ )
    {
    ZeroMemory(&temp, 255);
 
    // Для часов
    char *sth = strstr(t, "***");
    char *del = strstr(sth, "\r\n");
    char *fh = del + 3;
    char *h = strstr(fh, ".");
    unsigned long lh = h - fh;
    temp[lh] = 0;
    strncpy(temp, fh, lh);
 
    hour[i]=StrToInt(temp);
    Edit6->Text=hour[i];
 
    StringGrid1->Cells[2][1] = StrToInt(temp);
 
    // Для минут
    char *fm = fh + 3;
    char *m = strstr(fm, " ");
    unsigned long lm = m - fm;
    temp[lm] = 0;
    strncpy(temp, fm, lm);
    StringGrid1->Cells[3][1] = StrToInt(temp);
 
    // Для года
    char *fy = fm + 3;
    char *y = strstr(fy, "-");
    unsigned long ly = y - fy;
    temp[ly] = 0;
    strncpy(temp, fy, ly);
    StringGrid1->Cells[6][1] = StrToInt(temp);
 
    // Для месяца
    char *fmnh = fy + 5;
    char *mnh = strstr(fmnh, "-");
    unsigned long lmnh = mnh - fmnh;
    temp[lmnh] = 0;
    strncpy(temp, fmnh, lmnh);
    StringGrid1->Cells[5][1] = StrToInt(temp);
 
     //Для дня
    char *fd = fmnh + 3;
    char *d = strstr(fd, " ");
    unsigned long ld = d - fd;
    temp[ld] = 0;
    strncpy(temp, fd, ld);
    StringGrid1->Cells[4][1] = StrToInt(temp);
 
    //Для смены
    char *fsm = fd + 5;
    char *sm = strstr(fsm, " ");
    unsigned long lsm = sm - fsm;
    temp[lsm] = 0;
    strncpy(temp, fsm, lsm);
    StringGrid1->Cells[7][1] = StrToInt(temp);
 
    //Для бригады
    char *fbr = fsm + 4;
    char *br = strstr(fbr, " ");
    unsigned long lbr = br - fbr;
    temp[lbr] = 0;
    strncpy(temp, fbr, lbr);
    StringGrid1->Cells[8][1] = StrToInt(temp);
 
    //Для плавки
    char *fpl = fbr + 5;
    char *pl = strstr(fpl, " ");
    unsigned long lpl = pl - fpl;
    temp[lpl] = 0;
    strncpy(temp, fpl, lpl);
    StringGrid1->Cells[1][1] = StrToInt(temp);
 
}
}