- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
float Chislo(char *a, int i)
{
int j=i;
int k=0;
int r;
float chis=0;
while (a[j-1]!=' ' && a[j-1]!='>' && a[j-1]!='-' && a[j-1]!='+' && a[j-1]!='(')
{j--;
//тут перегоняем символ a[j] в цифру r
if (int(a[j]==48)) r=0;
else if (int(a[j]==49)) r=1;
else if (int(a[j]==50)) r=2;
else if (int(a[j]==51)) r=3;
else if (int(a[j]==52)) r=4;
else if (int(a[j]==53)) r=5;
else if (int(a[j]==54)) r=6;
else if (int(a[j]==55)) r=7;
else if (int(a[j]==56)) r=8;
else if (int(a[j]==57)) r=9;
else goto lab8;
//ShowMessage(a[j]);
chis=chis + r*pow(10,k);
k++;
};
//j--; //дальше надо обратно до точки и дольше до пробела
while (a[j]!='.')
{if (a[j]==' ' || a[j]==':') goto lab8;
j++;
};
j++;
r=0;
k=-1;
k--;
j++;
};
lab8:
return chis;
}
// была еще и похощая функция возвращающая результат в виде AnsiString
// вот сколько переменных понадобивлось автору в более чем 700-строчной процедуре
void Progon()
{
//
AnsiString TempR1, TempR2, TempR3, Com,Sport,Team1,Team2, Team, URL1, URL2, page,Champ,Date;
AnsiString day, month, year, Res, temp, otdyh1, otdyh2;
int dat;
//TempR1 = NMHTTP1->Body;
float tot,TM,TB,bol1,bol2,srbol,ver,value,proc;
AnsiString totS,f1S,ind1S,ind2S, f1ch1S, t_ch1S, f1ch2S, t_ch2S, f1ch3S, t_ch3S, f1ch4S, t_ch4S;
float fora1,ind1,ind2, f1ch1, t_ch1, f1ch2, t_ch2, f1ch3, t_ch3, f1ch4, t_ch4;
AnsiString Score1, Score2, s1ch1S, s2ch1S, s1ch2S, s2ch2S, s1ch3S, s2ch3S, s1ch4S, s2ch4S;
AnsiString FIO, ScoreS, RebS, AstS, MinS, Amplua, BlkS, StlS;
AnsiString TotalS, RebBookS, AstBookS, StlBookS, BlkBookS;
float Total, RebBook, AstBook, BlkBook, StlBook;
float PtssNRebsBook, PtssNAstsBook, RebsNAstsBook, PtssNRebsNAstsBook, Book3ptTeam1, Book3ptTeam2;
int Score, count;
int str1, str2, ind, indd, ig_pos;
bool win;
// В коде куча такого
while (bukva2[i2]!='/') i2++;
i2++;
while (bukva2[i2]!='/') i2++;
i2++;
while (bukva2[i2]!='/') i2++; // // обошли stl
int *Ptss;
Ptss = new int[count];
int *Rebs;
Rebs = new int[count];
int *Asts;
Asts = new int[count];
int *Blks;
while ( ! ( ((bukva[i]=='H') &&(bukva[i+1]=='o') && (bukva[i+2]=='m') && (bukva[i+3]=='e')) || ((bukva[i]=='R') &&(bukva[i+1]=='o') && (bukva[i+2]=='a') && (bukva[i+3]=='d')))) i--;
while (bukva[i]!='a') i--;
while ((bukva[i-1]!='>') && (bukva[i-1]!=' ')) i--;
// Внутри циклов всюду работа с экселем
else
{Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+14).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+15).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
};
Как -то по фрилансу заказчик хотел доработать то ли парсер, то ли еще что-то (по предоставленным исходникам я так и не смог понять что это за прога, названная "Автониггер" и написанная каким -то студентом толи специально ради выноса мозгов, то ли по еще каким-то причинам вышеобозначенными выкладками, которые вполне возможно содержат в себе какойто гипнотический смысл).