The online racing simulator
Application to provide stats from the pubstats function?
Is there, or can anyone here write, a small program to grab pubstats information and show it in a certain way?.

I basically would like to use this pubstat info to give me the following information.

Laps/mileage per car
Laps/mileage per track

this is the format that you get from pubstats

200 XFG 50520 308
100 RB4 57310 104
110 RB4 58240 48
110 FXO 62290 26
000 XRT 85550 22
220 RB4 112680 4
100 FXO 56040 564
000 RB4 96340 17
000 FXO 84300 96
220 FXO 93850 176
200 FXO 51240 10
200 RB4 55610 7

First number is track, so 200=south city classic I believe, car is self explainatory, then PB, then number of laps.

Is this possible to have a small util that I can bring up, it grabs the current pubstat info and then shows it in the format I want, laps/mileage per car and again for track?

Cheers

Dan,
This is what i was able to find about you:

[html]
200, XFG, 50520, 308
100, RB4, 57310, 104
110, RB4, 58240, 48
110, FXO, 62290, 26
000, XRT, 85550, 22
220, RB4, 112680, 4
100, FXO, 56040, 564
000, RB4, 96340, 17
000, FXO, 84300, 96
220, FXO, 93850, 176
200, FXO, 51240, 10
200, RB4, 55610, 7
130, FXO, 117020, 14
210, FXO, 79370, 161
100, LX6, 49770, 56
000, XRG, 95400, 97
100, LX4, 53340, 10
210, RB4, 82460, 24
100, MRT, 53540, 71
001, MRT, 0, 1
211, XRG, 94240, 14
210, MRT, 81820, 24
110, MRT, 56870, 96
100, XFG, 60420, 49
200, MRT, 45930, 87
000, XFG, 93460, 726
000, MRT, 87940, 37
110, XFG, 68430, 11
210, XFG, 92080, 28
330, LX6, 12680, 23
330, XRG, 16130, 10
220, XRT, 97140, 19
201, XFG, 54060, 42
220, XFG, 110410, 7
210, LX4, 80950, 30
000, LX6, 82030, 52
240, RB4, 78260, 15
400, FO8, 36510, 288
400, FZR, 39000, 10
500, FZR, 94190, 29
000, XFR, 76960, 25
620, FZR, 102380, 271
600, UFR, 53310, 146
200, UF1, 53740, 88
610, UFR, 66890, 247
000, UFR, 76790, 258
200, UFR, 44440, 20
620, FO8, 108580, 5
110, UFR, 55070, 10
610, RAC, 91200, 1
120, UF1, 51460, 18
600, UF1, 67750, 79
240, UF1, 88680, 9
330, FXR, 11040, 3
330, XRR, 11680, 1
330, FZR, 11780, 1
620, FXR, 111290, 13
400, UF1, 68450, 8
020, UF1, 15870, 368
020, UFR, 20270, 3
100, UFR, 50660, 5
100, FOX, 43950, 59
000, FZR, 70350, 50
620, FOX, 111990, 21
140, FOX, 75830, 73
610, XFR, 65520, 431
130, FOX, 97980, 7
630, FOX, 159330, 5
610, FOX, 61560, 202
220, UFR, 88730, 108
201, UF1, 55470, 36
620, XRR, 105100, 68
500, UFR, 108750, 198
220, FOX, 82320, 7
110, XFR, 53440, 16
410, UFR, 113420, 52
230, RB4, 183960, 10
600, RB4, 60130, 20
000, FOX, 71540, 24
620, UFR, 119230, 46
130, UF1, 140510, 3
001, UFR, 79370, 88
420, FOX, 152530, 1
210, UFR, 79770, 4
210, XFR, 77770, 2
000, FXR, 80910, 2
121, UF1, 51120, 11
610, FXO, 72330, 93
210, FO8, 59690, 28
220, LX4, 113020, 7
620, UF1, 164410, 6
131, FXO, 113280, 149
141, UFR, 0, 1
600, FXO, 57320, 34
620, XFR, 116050, 173
600, XFG, 63660, 58
010, XRG, 74640, 39
010, RB4, 0, 1
411, XFR, 113580, 17
500, FXO, 117000, 166
501, FXR, 99690, 12
610, UF1, 90680, 26
500, FO8, 105020, 3
001, FXO, 84640, 256
001, XFG, 94180, 31
640, FO8, 183550, 4
201, LX4, 46550, 103
251, RB4, 32640, 22
210, XRT, 81310, 9
410, FZR, 110040, 3
410, XRR, 103050, 5
630, XFR, 164110, 87
600, FO8, 47210, 11
600, FZ5, 59340, 4
600, RAC, 72930, 1
620, RAC, 122130, 49
650, BF1, 134890, 3
661, BF1, 143640, 1
130, BF1, 83390, 5
000, BF1, 60130, 4
410, FXO, 119990, 59
660, RAC, 139250, 27
140, FXO, 91830, 70
620, BF1, 89130, 6
121, XRG, 47900, 108
420, FXO, 173900, 4
100, UF1, 63320, 22
660, UFR, 128960, 7
660, XFR, 129210, 3
640, FXO, 201800, 38
210, XRG, 91040, 23
600, XRG, 66590, 10
410, FOX, 102490, 12
410, FO8, 0, 1
000, FZ5, 82670, 39
130, FZ5, 111090, 9
130, RAC, 113910, 6
130, MRT, 113560, 3
621, FO8, 107970, 2
111, FZ5, 58780, 7
211, FZ5, 91230, 2
211, LX6, 84260, 7
100, FO8, 39910, 9
410, FZ5, 117970, 6
200, XRG, 52300, 17
240, FZ5, 80450, 6
130, XFR, 101740, 52
410, LX6, 120320, 3
140, XFG, 101520, 62
610, XFG, 82270, 75
111, XRG, 66060, 62
410, RB4, 137550, 2
220, FZ5, 98750, 5
410, XFR, 111350, 2
661, XRG, 157800, 7
611, XFR, 88120, 2
100, XFR, 47710, 17
411, RB4, 127050, 4
411, FXO, 122330, 16
141, FO8, 72490, 2
501, FZ5, 121840, 12
101, XRG, 60520, 21
210, FOX, 67450, 5
610, RB4, 73970, 16
111, FXO, 58840, 17
241, RB4, 84250, 5
221, XRT, 99590, 19
250, FXO, 31130, 53
600, LX4, 59480, 13
610, MRT, 76580, 11
111, XFR, 54180, 2
630, BF1, 133960, 3
400, BF1, 32040, 16
220, XFR, 84030, 66
500, XFR, 105530, 55
600, XRT, 61980, 2
011, FZ5, 72770, 13
221, FZ5, 0, 1
001, XFR, 77250, 45
141, XFR, 84450, 24
201, XRG, 52230, 32
221, XRG, 112980, 14
120, FXO, 42830, 32
410, LX4, 123890, 9
230, UF1, 320300, 3
660, FO8, 102610, 9
601, UF1, 71010, 13
221, LX6, 95840, 20
610, LX4, 72640, 77
121, MRT, 41500, 6
630, LX4, 187690, 3
230, RAC, 0, 1
620, LX6, 122580, 11
660, LX6, 134340, 12
200, LX6, 44550, 6
621, LX6, 125040, 6
001, LX6, 82780, 28
611, LX6, 70350, 25
600, LX6, 55940, 18
100, FZ5, 51060, 26
660, FZ5, 231490, 2
100, RAC, 50410, 38
220, LX6, 94000, 3
601, MRT, 59690, 4
201, LX6, 45390, 12
610, LX6, 69920, 6
101, LX6, 50710, 25
001, FZ5, 84230, 11
001, RAC, 84490, 9
241, XRG, 85140, 6
230, LX6, 171280, 15
611, UF1, 92030, 23
101, UF1, 63720, 43
251, XRG, 35800, 9
210, UF1, 96830, 7
001, XRG, 99370, 6
100, XRG, 59410, 10
110, XRG, 65660, 7
130, XRG, 131290, 6
220, XRG, 107050, 10
100, XRT, 54260, 10
601, XRT, 59950, 30
120, XRT, 44650, 23
101, XRT, 54060, 7
500, XRT, 129530, 3
501, XRT, 121150, 7
101, RB4, 55700, 4
601, RB4, 61290, 5
120, LX4, 44200, 22
601, LX4, 58170, 26
130, LX4, 113060, 19
000, LX4, 88060, 6
251, LX4, 34900, 18
111, LX4, 57400, 12
221, LX4, 96760, 14
101, LX4, 52200, 6
611, XRT, 75380, 4
610, XRT, 73540, 30
420, LX4, 173350, 4
141, LX4, 92290, 16
140, LX4, 98100, 8
501, LX4, 119210, 9
001, LX4, 85510, 41
621, LX4, 138910, 6
660, LX4, 154460, 4
211, LX4, 80440, 38
500, LX4, 122150, 5
011, LX4, 75690, 8
120, FZ5, 44880, 11
141, RAC, 97230, 6
101, RAC, 59980, 9
410, RAC, 127410, 7
211, RAC, 87260, 3
110, LX4, 60640, 12
[/html]
Yeah, I already have that, now I need a program to transfer that info into a nice readable format with the info I require.
Quote from danowat :Yeah, I already have that, now I need a program to transfer that info into a nice readable format with the info I require.

Do you want that info in csv format with the tracks codes translated to names tracks, that way Excel could import the info.
Hmm.......that could work
See my 1st post, csv format is comma-separated, so Excel should import that ok.
Now i just need to find the track codes table
Ahhh.......got ya, I am incredibly thick when it comes to stuff like this

I still an not sure how to collate the info from the csv file once I have it in excel, I am not that up of excel stuff either, pretty bloody useless ain't I
Ok.
I think this will do now:

[HTML]
Fern Bay Club Standard, XFG, 50520, 308
South City Classic Standard, RB4, 57310, 104
South City Sprint Track 1 Standard, RB4, 58240, 48
South City Sprint Track 1 Standard, FXO, 62290, 26
Blackwood GP Track Standard, XRT, 85550, 22
Fern Bay Gold Track Standard, RB4, 112680, 4
South City Classic Standard, FXO, 56040, 564
Blackwood GP Track Standard, RB4, 96340, 17
Blackwood GP Track Standard, FXO, 84300, 96
Fern Bay Gold Track Standard, FXO, 93850, 176
Fern Bay Club Standard, FXO, 51240, 10
Fern Bay Club Standard, RB4, 55610, 7
South City Long Standard, FXO, 117020, 14
Fern Bay Green Track Standard, FXO, 79370, 161
South City Classic Standard, LX6, 49770, 56
Blackwood GP Track Standard, XRG, 95400, 97
South City Classic Standard, LX4, 53340, 10
Fern Bay Green Track Standard, RB4, 82460, 24
South City Classic Standard, MRT, 53540, 71
Blackwood GP Track Reversed, MRT, 0, 1
Fern Bay Green Track Reversed, XRG, 94240, 14
Fern Bay Green Track Standard, MRT, 81820, 24
South City Sprint Track 1 Standard, MRT, 56870, 96
South City Classic Standard, XFG, 60420, 49
Fern Bay Club Standard, MRT, 45930, 87
Blackwood GP Track Standard, XFG, 93460, 726
Blackwood GP Track Standard, MRT, 87940, 37
South City Sprint Track 1 Standard, XFG, 68430, 11
Fern Bay Green Track Standard, XFG, 92080, 28
Autocross Eight Lane Drag Single Stage, LX6, 12680, 23
Autocross Eight Lane Drag Single Stage, XRG, 16130, 10
Fern Bay Gold Track Standard, XRT, 97140, 19
Fern Bay Club Reversed, XFG, 54060, 42
Fern Bay Gold Track Standard, XFG, 110410, 7
Fern Bay Green Track Standard, LX4, 80950, 30
Blackwood GP Track Standard, LX6, 82030, 52
Fern Bay Rally Cross Standard, RB4, 78260, 15
Kyoto Ring Oval Standard, FO8, 36510, 288
Kyoto Ring Oval Standard, FZR, 39000, 10
Westhill International Standard, FZR, 94190, 29
Blackwood GP Track Standard, XFR, 76960, 25
Aston National Standard, FZR, 102380, 271
Aston Cadet Standard, UFR, 53310, 146
Fern Bay Club Standard, UF1, 53740, 88
Aston Club Standard, UFR, 66890, 247
Blackwood GP Track Standard, UFR, 76790, 258
Fern Bay Club Standard, UFR, 44440, 20
Aston National Standard, FO8, 108580, 5
South City Sprint Track 1 Standard, UFR, 55070, 10
Aston Club Standard, RAC, 91200, 1
South City Sprint Track 2 Standard, UF1, 51460, 18
Aston Cadet Standard, UF1, 67750, 79
Fern Bay Rally Cross Standard, UF1, 88680, 9
Autocross Eight Lane Drag Single Stage, FXR, 11040, 3
Autocross Eight Lane Drag Single Stage, XRR, 11680, 1
Autocross Eight Lane Drag Single Stage, FZR, 11780, 1
Aston National Standard, FXR, 111290, 13
Kyoto Ring Oval Standard, UF1, 68450, 8
Blackwood Car Park Arena, UF1, 15870, 368
Blackwood Car Park Arena, UFR, 20270, 3
South City Classic Standard, UFR, 50660, 5
South City Classic Standard, FOX, 43950, 59
Blackwood GP Track Standard, FZR, 70350, 50
Aston National Standard, FOX, 111990, 21
South City Classic Standard, FOX, 75830, 73
Aston Club Standard, XFR, 65520, 431
South City Long Standard, FOX, 97980, 7
Aston Historic Standard, FOX, 159330, 5
Aston Club Standard, FOX, 61560, 202
Fern Bay Gold Track Standard, UFR, 88730, 108
Fern Bay Club Reversed, UF1, 55470, 36
Aston National Standard, XRR, 105100, 68
Westhill International Standard, UFR, 108750, 198
Fern Bay Gold Track Standard, FOX, 82320, 7
South City Sprint Track 1 Standard, XFR, 53440, 16
Kyoto Ring National Standard, UFR, 113420, 52
Fern Bay Black Track Standard, RB4, 183960, 10
Aston Cadet Standard, RB4, 60130, 20
Blackwood GP Track Standard, FOX, 71540, 24
Aston National Standard, UFR, 119230, 46
South City Long Standard, UF1, 140510, 3
Blackwood GP Track Reversed, UFR, 79370, 88
Kyoto Ring GP Long Standard, FOX, 152530, 1
Fern Bay Green Track Standard, UFR, 79770, 4
Fern Bay Green Track Standard, XFR, 77770, 2
Blackwood GP Track Standard, FXR, 80910, 2
South City Sprint Track 2 Reversed, UF1, 51120, 11
Aston Club Standard, FXO, 72330, 93
Fern Bay Green Track Standard, FO8, 59690, 28
Fern Bay Gold Track Standard, LX4, 113020, 7
Aston National Standard, UF1, 164410, 6
South City Long Reversed, FXO, 113280, 149
South City Classic Reversed, UFR, 0, 1
Aston Cadet Standard, FXO, 57320, 34
Aston National Standard, XFR, 116050, 173
Aston Cadet Standard, XFG, 63660, 58
Blackwood Rally Cross Standard, XRG, 74640, 39
Blackwood Rally Cross Standard, RB4, 0, 1
Kyoto Ring National Reversed, XFR, 113580, 17
Westhill International Standard, FXO, 117000, 166
Westhill International Reversed, FXR, 99690, 12
Aston Club Standard, UF1, 90680, 26
Westhill International Standard, FO8, 105020, 3
Blackwood GP Track Reversed, FXO, 84640, 256
Blackwood GP Track Reversed, XFG, 94180, 31
Aston Grand Prix Standard, FO8, 183550, 4
Fern Bay Club Reversed, LX4, 46550, 103
Fern Bay RallyX Green Reversed, RB4, 32640, 22
Fern Bay Green Track Standard, XRT, 81310, 9
Kyoto Ring National Standard, FZR, 110040, 3
Kyoto Ring National Standard, XRR, 103050, 5
Aston Historic Standard, XFR, 164110, 87
Aston Cadet Standard, FO8, 47210, 11
Aston Cadet Standard, FZ5, 59340, 4
Aston Cadet Standard, RAC, 72930, 1
Aston National Standard, RAC, 122130, 49
Aston Grand Touring Standard, BF1, 134890, 3
Aston North Reversed, BF1, 143640, 1
South City Long Standard, BF1, 83390, 5
Blackwood GP Track Standard, BF1, 60130, 4
Kyoto Ring National Standard, FXO, 119990, 59
Aston North Standard, RAC, 139250, 27
South City Classic Standard, FXO, 91830, 70
Aston National Standard, BF1, 89130, 6
South City Sprint Track 2 Reversed, XRG, 47900, 108
Kyoto Ring GP Long Standard, FXO, 173900, 4
South City Classic Standard, UF1, 63320, 22
Aston North Standard, UFR, 128960, 7
Aston North Standard, XFR, 129210, 3
Aston Grand Prix Standard, FXO, 201800, 38
Fern Bay Green Track Standard, XRG, 91040, 23
Aston Cadet Standard, XRG, 66590, 10
Kyoto Ring National Standard, FOX, 102490, 12
Kyoto Ring National Standard, FO8, 0, 1
Blackwood GP Track Standard, FZ5, 82670, 39
South City Long Standard, FZ5, 111090, 9
South City Long Standard, RAC, 113910, 6
South City Long Standard, MRT, 113560, 3
Aston National Reversed, FO8, 107970, 2
South City Sprint Track 1 Reversed, FZ5, 58780, 7
Fern Bay Green Track Reversed, FZ5, 91230, 2
Fern Bay Green Track Reversed, LX6, 84260, 7
South City Classic Standard, FO8, 39910, 9
Kyoto Ring National Standard, FZ5, 117970, 6
Fern Bay Club Standard, XRG, 52300, 17
Fern Bay Rally Cross Standard, FZ5, 80450, 6
South City Long Standard, XFR, 101740, 52
Kyoto Ring National Standard, LX6, 120320, 3
South City Classic Standard, XFG, 101520, 62
Aston Club Standard, XFG, 82270, 75
South City Sprint Track 1 Reversed, XRG, 66060, 62
Kyoto Ring National Standard, RB4, 137550, 2
Fern Bay Gold Track Standard, FZ5, 98750, 5
Kyoto Ring National Standard, XFR, 111350, 2
Aston North Reversed, XRG, 157800, 7
Aston Club Reversed, XFR, 88120, 2
South City Classic Standard, XFR, 47710, 17
Kyoto Ring National Reversed, RB4, 127050, 4
Kyoto Ring National Reversed, FXO, 122330, 16
South City Classic Reversed, FO8, 72490, 2
Westhill International Reversed, FZ5, 121840, 12
South City Classic Reversed, XRG, 60520, 21
Fern Bay Green Track Standard, FOX, 67450, 5
Aston Club Standard, RB4, 73970, 16
South City Sprint Track 1 Reversed, FXO, 58840, 17
Fern Bay Rally Cross Reversed, RB4, 84250, 5
Fern Bay Gold Track Reversed, XRT, 99590, 19
Fern Bay RallyX Green Standard, FXO, 31130, 53
Aston Cadet Standard, LX4, 59480, 13
Aston Club Standard, MRT, 76580, 11
South City Sprint Track 1 Reversed, XFR, 54180, 2
Aston Historic Standard, BF1, 133960, 3
Kyoto Ring Oval Standard, BF1, 32040, 16
Fern Bay Gold Track Standard, XFR, 84030, 66
Westhill International Standard, XFR, 105530, 55
Aston Cadet Standard, XRT, 61980, 2
Blackwood Rally Cross Reversed, FZ5, 72770, 13
Fern Bay Gold Track Reversed, FZ5, 0, 1
Blackwood GP Track Reversed, XFR, 77250, 45
South City Classic Reversed, XFR, 84450, 24
Fern Bay Club Reversed, XRG, 52230, 32
Fern Bay Gold Track Reversed, XRG, 112980, 14
South City Sprint Track 2 Standard, FXO, 42830, 32
Kyoto Ring National Standard, LX4, 123890, 9
Fern Bay Black Track Standard, UF1, 320300, 3
Aston North Standard, FO8, 102610, 9
Aston Cadet Reversed, UF1, 71010, 13
Fern Bay Gold Track Reversed, LX6, 95840, 20
Aston Club Standard, LX4, 72640, 77
South City Sprint Track 2 Reversed, MRT, 41500, 6
Aston Historic Standard, LX4, 187690, 3
Fern Bay Black Track Standard, RAC, 0, 1
Aston National Standard, LX6, 122580, 11
Aston North Standard, LX6, 134340, 12
Fern Bay Club Standard, LX6, 44550, 6
Aston National Reversed, LX6, 125040, 6
Blackwood GP Track Reversed, LX6, 82780, 28
Aston Club Reversed, LX6, 70350, 25
Aston Cadet Standard, LX6, 55940, 18
South City Classic Standard, FZ5, 51060, 26
Aston North Standard, FZ5, 231490, 2
South City Classic Standard, RAC, 50410, 38
Fern Bay Gold Track Standard, LX6, 94000, 3
Aston Cadet Reversed, MRT, 59690, 4
Fern Bay Club Reversed, LX6, 45390, 12
Aston Club Standard, LX6, 69920, 6
South City Classic Reversed, LX6, 50710, 25
Blackwood GP Track Reversed, FZ5, 84230, 11
Blackwood GP Track Reversed, RAC, 84490, 9
Fern Bay Rally Cross Reversed, XRG, 85140, 6
Fern Bay Black Track Standard, LX6, 171280, 15
Aston Club Reversed, UF1, 92030, 23
South City Classic Reversed, UF1, 63720, 43
Fern Bay RallyX Green Reversed, XRG, 35800, 9
Fern Bay Green Track Standard, UF1, 96830, 7
Blackwood GP Track Reversed, XRG, 99370, 6
South City Classic Standard, XRG, 59410, 10
South City Sprint Track 1 Standard, XRG, 65660, 7
South City Long Standard, XRG, 131290, 6
Fern Bay Gold Track Standard, XRG, 107050, 10
South City Classic Standard, XRT, 54260, 10
Aston Cadet Reversed, XRT, 59950, 30
South City Sprint Track 2 Standard, XRT, 44650, 23
South City Classic Reversed, XRT, 54060, 7
Westhill International Standard, XRT, 129530, 3
Westhill International Reversed, XRT, 121150, 7
South City Classic Reversed, RB4, 55700, 4
Aston Cadet Reversed, RB4, 61290, 5
South City Sprint Track 2 Standard, LX4, 44200, 22
Aston Cadet Reversed, LX4, 58170, 26
South City Long Standard, LX4, 113060, 19
Blackwood GP Track Standard, LX4, 88060, 6
Fern Bay RallyX Green Reversed, LX4, 34900, 18
South City Sprint Track 1 Reversed, LX4, 57400, 12
Fern Bay Gold Track Reversed, LX4, 96760, 14
South City Classic Reversed, LX4, 52200, 6
Aston Club Reversed, XRT, 75380, 4
Aston Club Standard, XRT, 73540, 30
Kyoto Ring GP Long Standard, LX4, 173350, 4
South City Classic Reversed, LX4, 92290, 16
South City Classic Standard, LX4, 98100, 8
Westhill International Reversed, LX4, 119210, 9
Blackwood GP Track Reversed, LX4, 85510, 41
Aston National Reversed, LX4, 138910, 6
Aston North Standard, LX4, 154460, 4
Fern Bay Green Track Reversed, LX4, 80440, 38
Westhill International Standard, LX4, 122150, 5
Blackwood Rally Cross Reversed, LX4, 75690, 8
South City Sprint Track 2 Standard, FZ5, 44880, 11
South City Classic Reversed, RAC, 97230, 6
South City Classic Reversed, RAC, 59980, 9
Kyoto Ring National Standard, RAC, 127410, 7
Fern Bay Green Track Reversed, RAC, 87260, 3
South City Sprint Track 1 Standard, LX4, 60640, 12
[/HTML]

Hope it helps, there's the possibility to change the Standard to nothing and Reverse to R or just the abreviation, ex: FE2R, if you like.
Yeah, thats all fine and dandy, but I now need a way to collate that data (automatically if possible) either using a standalone app or excel into the format I want, laps/mileage per car, and laps/mileage per curcuit.
Edit: nvm
Do you actually have php-capable hosting and want a script which can do this? Or do you just want the data?
Oh, I see you are asking for an application. I can write a quick script to do it but I can only code in PHP I'm afraid.
Quote from joshdifabio :Do you actually have php-capable hosting and want a script which can do this? Or do you just want the data?

All I want is the data available from pubstats put into an easy to read format that shows things that you can't see/get from LFSW, like laps/mileage per car, and laps/mileage per curcuit.

Weather this is done in excel using csv, or using a standalone app, I have no preference.
Laps by Track:

[HTML]
Fern Bay Club Standard, 543
South City Classic Standard, 1050
South City Sprint Track 1 Standard, 226
Blackwood GP Track Standard, 1455
Fern Bay Gold Track Standard, 412
South City Long Standard, 124
Fern Bay Green Track Standard, 345
Blackwood GP Track Reversed, 516
Fern Bay Green Track Reversed, 64
Autocross Eight Lane Drag Single Stage, 38
Fern Bay Club Reversed, 225
Fern Bay Rally Cross Standard, 30
Kyoto Ring Oval Standard, 322
Westhill International Standard, 459
Aston National Standard, 669
Aston Cadet Standard, 396
Aston Club Standard, 1215
South City Sprint Track 2 Standard, 106
Blackwood Car Park Arena, 371
South City Classic Standard, 213
Aston Historic Standard, 98
Kyoto Ring National Standard, 161
Fern Bay Black Track Standard, 29
Kyoto Ring GP Long Standard, 9
South City Sprint Track 2 Reversed, 125
South City Long Reversed, 149
South City Classic Reversed, 49
Blackwood Rally Cross Standard, 40
Kyoto Ring National Reversed, 37
Westhill International Reversed, 40
Aston Grand Prix Standard, 42
Fern Bay RallyX Green Reversed, 49
Aston Grand Touring Standard, 3
Aston North Reversed, 8
Aston North Standard, 64
Aston National Reversed, 14
South City Sprint Track 1 Reversed, 100
Aston Club Reversed, 54
South City Classic Reversed, 115
Fern Bay Rally Cross Reversed, 11
Fern Bay Gold Track Reversed, 68
Fern Bay RallyX Green Standard, 53
Blackwood Rally Cross Reversed, 21
Aston Cadet Reversed, 78
[/HTML]

Laps by car:
[HTML]
XFG, 1397
RB4, 308
FXO, 2034
XRT, 185
LX6, 328
XRG, 508
LX4, 526
MRT, 340
FO8, 362
FZR, 364
XFR, 1019
UFR, 1193
UF1, 763
RAC, 157
FXR, 30
XRR, 74
FOX, 416
FZ5, 154
BF1, 38
[/HTML]

I think this is correct, but might be worth to check.
And how did you get that data from the original data?
Quote from Renku :How did you add the commas there? I got the results without them, like in the first post.

i have to work the data that come from the request, it's fairly easy.
I can post the test script i used to make this if someone wants it.
Quote from danowat :And how did you get that data from the original data?

- foreach - is my friend, since i have the raw data that comes from the server, all i have to do is work it.
Well, obviously I would like to know how to use it, but it would have to be pretty idiot proof .

edit: so I understand you just manually manipulated the data?, I would like something that would collate the data "automatically"

Many thanks for the help so far
This was the test script i used:

<?php 
php
include "LFSWorldSDK.php";

$LFS_Tracks = array(
// LFSWorldName => Name, Configuration, Type, SortName, Length (In Miles).
'000' => array( "Blackwood""GP Track""Standard""BL1"2.1 ),
'001' => array( "Blackwood""GP Track""Reversed""BL1R"2.1 ),
'010' => array( "Blackwood""Rally Cross""Standard""BL2"1.2 ),
'011' => array( "Blackwood""Rally Cross""Reversed""BL2R"1.2 ),
'020' => array( "Blackwood""Car Park""Arena""BL3"0.2 ),
'100' => array( "South City""Classic""Standard""SO1"1.3 ),
'101' => array( "South City""Classic""Reversed""SO1R"1.3 ),
'110' => array( "South City""Sprint Track 1""Standard""SO2"1.3 ),
'111' => array( "South City""Sprint Track 1""Reversed""SO2R"1.3 ),
'120' => array( "South City""Sprint Track 2""Standard""SO3"0.8 ),
'121' => array( "South City""Sprint Track 2""Reversed""SO3R"0.8 ),
'130' => array( "South City""Long""Standard""SO4"2.5 ),
'131' => array( "South City""Long""Reversed""SO4R"2.5 ),
'140' => array( "South City""Classic""Standard""SO5"),
'141' => array( "South City""Classic""Reversed""SO5R"),
'200' => array( "Fern Bay""Club""Standard""FE1"),
'201' => array( "Fern Bay""Club""Reversed""FE1R"),
'210' => array( "Fern Bay""Green Track""Standard""FE2"1.9 ),
'211' => array( "Fern Bay""Green Track""Reversed""FE2R"1.9 ),
'220' => array( "Fern Bay""Gold Track""Standard""FE3"2.2 ),
'221' => array( "Fern Bay""Gold Track""Reversed""FE3R"2.2 ),
'230' => array( "Fern Bay""Black Track""Standard""FE4"4.1 ),
'231' => array( "Fern Bay""Black Track""Reversed""FE4R"4.1 ),
'240' => array( "Fern Bay""Rally Cross""Standard""FE5"1.3 ),
'241' => array( "Fern Bay""Rally Cross""Reversed""FE5R"1.3 ),
'250' => array( "Fern Bay""RallyX Green""Standard""FE6"0.5 ),
'251' => array( "Fern Bay""RallyX Green""Reversed""FE6R"0.5 ),
'300' => array( "Autocross""Autocross""Arena""AU1"0.3 ),
'310' => array( "Autocross""Slod Pad""Arena""AU2"0.1 ),
'320' => array( "Autocross""Drag Strip""Single Stage""AU3"0.7 ),
'330' => array( "Autocross""Eight Lane Drag""Single Stage""AU4"0.7 ),
'400' => array( "Kyoto Ring""Oval""Standard""KY1"1.9 ),
'401' => array( "Kyoto Ring""Oval""Reversed""KY1R"1.9 ),
'410' => array( "Kyoto Ring""National""Standard""KY2"3.2 ),
'411' => array( "Kyoto Ring""National""Reversed""KY2R"3.2 ),
'420' => array( "Kyoto Ring""GP Long""Standard""KY3"4.6 ),
'421' => array( "Kyoto Ring""GP Long""Reversed""KY3R"4.6 ),
'500' => array( "Westhill""International""Standard""WE1"3.2 ),
'501' => array( "Westhill""International""Reversed""WE1R"3.2 ),
'600' => array( "Aston""Cadet""Standard""AS1"1.2 ),
'601' => array( "Aston""Cadet""Reversed""AS1R"1.2 ),
'610' => array( "Aston""Club""Standard""AS2"1.9 ),
'611' => array( "Aston""Club""Reversed""AS2R"1.9 ),
'620' => array( "Aston""National""Standard""AS3"3.5 ),
'621' => array( "Aston""National""Reversed""AS3R"3.5 ),
'630' => array( "Aston""Historic""Standard""AS4"),
'631' => array( "Aston""Historic""Reversed""AS4R"),
'640' => array( "Aston""Grand Prix""Standard""AS5"5.5 ),
'641' => array( "Aston""Grand Prix""Reversed""AS5R"5.5 ),
'650' => array( "Aston""Grand Touring""Standard""AS6"),
'651' => array( "Aston""Grand Touring""Reversed""AS6R"),
'660' => array( "Aston""North""Standard""AS7"3.2 ),
'661' => array( "Aston""North""Reversed""AS7R"3.2 )
);  

function 
get_track_name($code)
{
    global 
$LFS_Tracks;
    
    
$track $LFS_Tracks[$code];
    
$n1 $track[0];
    
$n2 $track[1];
    
$n3 $track[2];
    
$ret $n1." ".$n2." ".$n3;
    
    return 
$ret;
    
}

$SDK = new LFSWorldSDK;
$SDK->idkey 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

/*echo "<pre>";
var_dump($SDK->get_pb('danowat'));
echo "</pre>";*/

$stats $SDK->get_pb('danowat');

foreach(
$stats as $key => $value)
{
    foreach(
$value as $key2 => $value2)
    {
        if(
$key2 == "track")
        {
            
//echo $key2;
            
$value2 get_track_name($value2);
        }    
        
$str .= $value2.", ";
    }
    
$str substr($str0, -2);
    echo 
$str."</br>";    
    
$str "";
}    


//Ord by track name
foreach($stats as $key => $value)
{
    foreach(
$value as $key2 => $value2)
    {
        if(
$key2 == "track")
        {
            
$ord_by_track[$value2][] = $value;
        }
    }
}

//Ord by car name
foreach($stats as $key => $value)
{
    foreach(
$value as $key2 => $value2)
    {
        if(
$key2 == "car")
        {
            
$ord_by_car[$value2][] = $value;
        }
    }
}

/*echo "<pre>";
var_dump($ord_by_track);
echo "</pre>";*/

/*echo "<pre>";
var_dump($ord_by_car);
echo "</pre>";*/


foreach($ord_by_track as $key => $value)
{
    
$combos $value;
    foreach(
$combos as $key2 => $value)
    {
        
$track_name get_track_name($key);
        
$laps += $value['lapcount'];
    }    
    echo 
$track_name.", ".$laps."</br>";
    
$laps 0;
}

echo 
"------------------------------------------------------------------</br>";
echo 
"------------------------------------------------------------------</br>";

foreach(
$ord_by_car as $key => $value)
{
    
$combos $value;
    foreach(
$combos as $key2 => $value)
    {
        
$laps += $value['lapcount'];
    }    
    echo 
$key.", ".$laps."</br>";
    
$laps 0;
}        


?>

I removed my idkey from this post, i don't know if it's good or bad to show it.

The SDK by Mark 'Dygear' Tomlin and Mikael 'filur' Forsberg:

<?php 
php
    
/**
     * @package        LFSWorldSDK
     */
    /**
     * Live For Speed World SDK, easily find what you need from the World of Live For Speed.
     *
     * @package        LFSWorldSDK
     * @since        2006/09/21 13:28
     * @author        Mark 'Dygear' Tomlin
     * @author        Mikael 'filur' Forsberg
     * @license        MIT License (http://opensource.org/licenses/mit-license.php)
     * @copyright    Copyright (C) 2006, Mark Tomlin
     * @version        1.00
     * @filesource
    */
    
    /* $Id: LFSWorldSDK.php,v 1.1 2006/10/04 09:05:40 lur Exp $ */
    
    
class LFSWorldSDK {
        
/**
         * @ignore
         * Premium pubstat access
         */
        
var $ps;
        
/**
         * @ignore
         * Pubstat id-key
         */
        
var $idkey;
        
/**
         * @ignore
         * Pubstat script version
         */
        
var $version;
        
/**
         * @ignore
         * Holds time of last request in order to honor tarpit limits (internal)
         */
        
var $lasthit;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>action=</i>
         */
        
var $action;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>racer=</i>
         */
        
var $racer;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>track=</i>
         */
        
var $track;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>car=</i>
         */
        
var $car;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>racer=</i>
         */
        
var $control;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>log_filter=</i>
         */
        
var $log_filter;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>lines=</i>
         */
        
var $lines;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>starttime=</i>
         */
        
var $starttime;
        
/**
         * @ignore
         * Holds value for pubstat query component <i>format=</i>
         */
        
var $format;
        
/**
         * @ignore
         * Holds value for pubstat query compression type
         */
        
var $c;
        
/**
         * Class construct, defines settings for each query performed by
         * the created instance
         *
         * @example construct.php Constructor
         * @param string Pubstat id-key
         * @param bool Premium pubstat access
         * @param string Pubstat script version
         */
        
function LFSWorldSDK($IdKey NULL$Premium 0$Version '1.2') {
            
$this->ps $Premium;
            
$this->idkey  $IdKey;
            
$this->version$Version;
            
$this->lasthit0;
            
$this->query  null;
        }
        
/**
         * @ignore
         * Assembles the complete http request string for a pubstat query.
         */
        
function make_query_string() {
            
$vars = array();
            foreach (
$this->get_option_set() as $key => $item) {
                
$vars[$key] = "{$key}={$item}";
            }
            foreach (
$this->get_request_vars() as $key => $item) {
                
$vars[$key] = "{$key}={$item}";
            }
            return 
'http://www.lfsworld.net/pubstat/get_stat2.php?' implode('&'$vars);
        }
        
/**
         * @ignore
         * Returns array holding keys and values corresponding to pubstat query settings.
         */
        
function get_option_set() {
            return array(
                
'version' => $this->version,
                
'idk' => $this->idkey,
                
'ps' => $this->ps,
            );
        }
        
/**
         * @ignore
         * Returns array holding keys and values of query-specific variables.
         */
        
function get_request_vars() {
            return array(
                
'action' => $this->action,
                
'racer' => urlencode($this->racer),
                
'car' => $this->car,
                
'track' => $this->track,
                
'control' => $this->control,
                
'log_filter' => $this->log_filter,
                
'lines' => $this->lines,
                
'starttime' => $this->starttime,
                
'format' => $this->format,
                
'c' => $this->c,
            );
        }
        
/**
         * @ignore
         * Performs and returns the result of a single query, also handles
         * honoring the tarpit limit if not using premium access, and decompression
         * if compression is used.
         */
        
function get_query_results() {
            if (
$this->ps === || time() - $this->lasthit >= 5) {
                
$this->lasthit time();
                if (
$str file_get_contents($this->make_query_string())) {
                    if (
$this->== 1) {
                        
$tmpfile tmpfile();
                        if (
file_put_contents($tmpfile$str)) {
                            
$gz gzopen($tmpfile"rb");
                            
$str gzpassthru($gz);
                            
gzclose($tmpfile);
                            return 
preg_replace("/\n$/"""$str);
                        }
                    }
                    elseif (
$this->== 2)
                        return 
preg_replace("/\n$/"""gzuncompress($str));
                    elseif (
$this->== 3)
                        return 
preg_replace("/\n$/"""gzinflate($str));
                    else {
                        if (
count(explode("\n"$str)) == 1)
                            Throw New 
Exception($str);
                        else
                            return 
preg_replace("/\n$/"""$str);
                    }
                }
            }
            else {
                
sleep(1);
                return 
$this->get_query_results();
            }
        }
        
/**
         * Request a complete or filtered set of hotlap results for a single racer.
         *
         * @example get_hl.php Example use of get_hl()
         * @param string Racer (LFS username)
         * @param int optional Track
         * @param string optional Car
         * @return array
         */
        
function get_hl($racer$track NULL$car NULL) {
            
$this->action 'hl';
            
$this->racer $racer;
            foreach (
explode("\n"$this->get_query_results()) as $line => $data) {
                
$fragment explode(' '$data);
                
$iteration = array(
                    
'id_hl' => $fragment[0],
                    
'track' => $fragment[1],
                    
'car' => $fragment[2],
                    
'time' => $fragment[3],
                    
'flags_hlaps' => $fragment[4]
                );
                if (
$track != NULL || $car != NULL) {
                    if (
$iteration['track'] == $track && $car == NULL)
                        
$result[] = $iteration;
                    if (
$iteration['car'] == $car && $track == NULL)
                        
$result[] = $iteration;
                    if (
$iteration['track'] == $track && $iteration['car'] == $car)
                        return 
$iteration;
                }
                else
                    
$result[] = $iteration;
            }
            return 
$result;
        }
        
/**
         * Request a complete or filtered set of personal bests for a single racer.
         *
         * @example get_pb.php Example use of get_pb()
         * @param string Racer (LFS username)
         * @param int optional Track
         * @param string optional Car
         * @return array
         */
        
function get_pb($racer$track NULL$car NULL) {
            
$this->action 'pb';
            
$this->racer $racer;
            foreach (
explode("\n"$this->get_query_results()) as $line => $data) {
                
$fragment explode(' '$data);
                
$iteration = array(
                    
'track' => $fragment[0],
                    
'car' => $fragment[1],
                    
'time' => $fragment[2],
                    
'lapcount' => $fragment[3]
                );
                if (
$track != NULL || $car != NULL) {
                    if (
$iteration['track'] == $track && $car == NULL)
                        
$result[] = $iteration;
                    if (
$iteration['car'] == $car && $track == NULL)
                        
$result[] = $iteration;
                    if (
$iteration['track'] == $track && $iteration['car'] == $car)
                        return 
$iteration;
                }
                else
                    
$result[] = $iteration;
            }
            return 
$result;
        }
        
/**
         * Request a complete set of basic online statistics for a single racer.
         *
         * @example get_stats.php Example use of get_stats()
         * @param string Racer (LFS username)
         * @return array
         */
        
function get_stats($racer) {
            
$this->action 'pst';
            
$this->racer $racer;
            
$data explode("\n"$this->get_query_results());
            
$result = array(
                
'distance' => $data[0],
                
'fuel' => $data[1],
                
'laps' => $data[2],
                
'hosts' => $data[3],
                
'wins' => $data[4],
                
'second' => $data[5],
                
'third' => $data[6],
                
'finished' => $data[7],
                
'quals' => $data[8],
                
'pole' => $data[9],
                
'credits' => $data[10],
                
'drags' => $data[11],
                
'dragwins' => $data[12],
                
'online' => $data[13],
                
'hostname' => $data[14]
            );
            return 
$result;
        }
        
/**
         * Request a complete hotlap chart optionally filtered by control method.
         *
         * @example hotlap_chart.php Example use of hotlap_chart()
         * @param string Racer (LFS username)
         * @param int optional Controller
         * @return array
         */
        
function hotlap_chart($track$car$control NULL) {
            
$this->action 'ch';
            
$this->track $track;
            
$this->car $car;
            if (
$control != NULL)
                
$this->control $control;
            foreach (
explode("\n"$this->get_query_results()) as $line => $data) {
                
$fragment explode(' '$data);
                
$result[] = array(
                    
'time' => $fragment[0],
                    
'flags_hlaps' => $fragment[1],
                    
'racername' => $fragment[2]
                );
            }
            return 
$result;
        }
        
/**
         * Request the complete list of world records
         *
         * @example get_wr.php Example use of get_wr()
         * @return array
         */
        
function get_wr() {
            
$this->action 'wr';
            foreach (
explode("\n"$this->get_query_results()) as $line => $data) {
                
$fragment explode(' '$data);
                
$result[] = array(
                    
'id_wr' => $fragment[0],
                    
'track' => $fragment[1],
                    
'car' => $fragment[2],
                    
'time' => $fragment[3],
                    
'flags_hlaps' => $fragment[4],
                    
'racername' => $fragment[5]
                );
            }
            return 
$result;
        }
        
/**
         * Request the complete list of online hosts.
         *
         * @example get_hosts.php Example use of get_hosts()
         * @return array
         */
        
function get_hosts() {
            
$this->action 'hosts';
            
$string $this->get_query_results();
            
$result = array();
            for (
$pointer 0$i 0$pointer <= strlen($string); $i++) {
                
$NumberOfRacers = @unpack("c"substr($string$pointer 521));
                
$NumberOfRacers $NumberOfRacers[1];
                
$NumberOfRacersLen $NumberOfRacers 24;
                
$PointerPast $NumberOfRacersLen 53;
                
$result[$i] = array();
                if ((
$result[$i] = @unpack("a32hostname/A4tmlt/A4tcrm/icars/irules/claps/cqual/cspare1/cspare2/cnrofracers/a{$NumberOfRacersLen}racernames"substr($string$pointer$PointerPast)))) {
                    
$result[$i]['racernames'] = preg_split("/\\0/"$result[$i]['racernames'], -1PREG_SPLIT_NO_EMPTY);
                    
$result[$i]['tmlt'] = unpack("ctype/cmain/a1letter/ctestId"$result[$i]['tmlt']);
                    
$result[$i]['tcrm'] = unpack("ctrack/cconfig/creversed/cmax"$result[$i]['tcrm']);
                }
                else
                    unset(
$result[$i]);
                
$pointer += $PointerPast;
            }
            return 
$result;
        }
        
/**
         * Request the complete team database.
         *
         * @example get_teams.php Example use of get_teams()
         * @return array
         */
        
function get_teams() {
            
$this->action 'teams';
            
$string $this->get_query_results();
            
$result = array();
            for (
$pointer 0$i 0$pointer <= strlen($string); $i++) {
                
$infoLen = @unpack("S"substr($string$pointer 1702));
                
$infoLen $infoLen[1];
                
$nrMembers = @unpack("S"substr($string$pointer 172 $infoLen2));
                
$nrMembers $nrMembers[1] * 24;
                
$PointerPast 174 $infoLen $nrMembers;
                
$result[$i] = array();
                if ((
$result[$i] = @unpack("a64team/a6tag/a32country/a64url/Ibits/Sinfo_len/a{$infoLen}info/Snr_members/a{$nrMembers}members"substr($string$pointer$PointerPast)))) {
                    
$result[$i]['members'] = preg_split("/\\0/"$result[$i]['members'], -1PREG_SPLIT_NO_EMPTY);
                    
$result[$i]['info'] = $result[$i]['info'];
                }
                else
                    unset(
$result[$i]);
                
$pointer += $PointerPast;
            }
            return 
$result;
        }
        
/**
         * Request entries from the hotlap upload log.
         *
         * @example get_hlog.php Example use of get_hlog()
         * @param int optional, filter: 1=WR's - 2=top10 - 3=top50 - 4=ALL.
         * @param int Amount of results to retrieve (1-150).
         * @param int optional, filter by control method "w", "m", "ks" or "kn".
         * @param int optional, only return results newer then $starttime (unix timestamp).
         * @return array
         */
        
function get_hlog($log_filter NULL$lines NULL$control NULL$starttime NULL) {
            
$this->action 'hl_log';
            
$this->format 3;
            if (
$log_filter != NULL)
                
$this->log_filter $log_filter;
            if (
$lines != NULL && $lines >= && $lines <= 150)
                
$this->lines $lines;
            if (
$control != NULL)
                
$this->control $control;
            if (
$starttime != NULL)
                
$this->starttime $starttime;
            
$string $this->get_query_results();
            
$result = array();
            for (
$pointer 0$i 0$pointer <= strlen($string); $i++) {
                
$result[$i] = array();
                if ((
$result[$i] = @unpack("itime/a24racer/a32country/A4tcrc/i4split/Spos/Sflags/iid_hl"substr($string$pointer88)))) {
                    
$result[$i]['tcrc'] = unpack("ctrack/cconfig/creversed/ccar"$result[$i]['tcrc']);
                }
                else
                    unset(
$result[$i]);
                
$pointer += 88;
            }
            return 
$result;
        }
    }


?>

That all looks excellent, and totally confusing, now how can "I" use it
I was doing this in a rush, don't have time to comment the code.

Well, if you have some way to run php scripts on your PC, you could just copy those scripts and use them, you have to get an idkey to access the pubstats from lfsworld.

If not you could ask someone to run for you or you could install a php bundle easly.
Quote from fujiwara : I was doing this in a rush, don't have time to comment the code.

Well, if you have some way to run php scripts on your PC, you could just copy those scripts and use them, you have to get an idkey to access the pubstats from lfsworld.

If not you could ask someone to run for you or you could install a php bundle easly.

In english?, or at least dumb blokes language?, you lost me a php.........
Hum...ok.
If you don't have a way to run php scripts:

Go to http://www.apachefriends.org/en/index.html
Install that bundle for windows or linux, see the readme for starting the server, you just need the php stuff, that bundle comes with a lot of stuff, but it's ready to roll, no need for extra configuration.

Place those two script i sent in "bundle installation dir"/htdocs/test, if you install the windows version the default dir is c:\xampp, just install it here, no need to extra configuration.

Go to http://www.lfsworld.net/, click on My LFSW settings, choose tab Pubstat access and generate an idkey, copy this idkey to test script,


<?php 
$SDK
->idkey ' place idkey here '
?>

Point you browser to http://localhost/test/testLFSSDK.php.

Hope this helps.
Many thanks man, I'll have a look at this when I get 5 mins
Well, the script is pretty simple but I have been unable to get the correct lap counts until now. Turns out there was a bug in the old LFSWorldSDK and I had to update .

http://www.spdoracing.org/lfsw ... _script.php?racer=danowat

Tell me if you are interested in getting the script. I might add the distances in a little while, however that requires an array with the length of every track config in LFS and I can't really be bothered to do that right now .
1

FGED GREDG RDFGDR GSFDG