Möchte aus einer Textdatei bestimmte Daten auslesen.
Erst einmal ein Auszug der Textdatei (orginal wesentlich länger)
Ein Umbau auf Mysql ist leider nicht möglich da das Spiel diese Datei so anlegt.
[Session]
Scene=2009 FORMULA 1 FUJI TELEVISION JAPANESE GRAND PRIX
TrackLength=5834.1304
StartTime=2009-11-17 23:38:42
SessionTime=3544.006104
LengthLaps=-1
LengthTime=165
DarkCloud=0.00
Raining=0.00
AmbientTemp=25.9
TrackTemp=31.0
OnPathWetness=0.00
OffPathWetness=0.00
Wind=(0.0,0.0,0.0)
Session=Practice116:12:17
GamePhase=GreenFlag
YellowFlag=None
SectorYellowFlags=(0,0,0)
[Slot000]
Driver=Ryan Atwood
Vehicle=1. Felipe Massa
VehicleClass=Season 2009
Position=1
Laps=26
InSector=1
BestLap=84.363
LastLap=84.240
BestSectors=(27.942, 39.033, 16.228)
LastLapSectors=(28.156, 39.856, 16.228)
Sectors=(-1.000, -1.000, -1.000)
Pitstops=4
InPits=1
TimeGapToLider=0.000
LapGapToLider=0
TimeGapToPrev=0.000
LapGapToPrev=0
LapDistanceTravelled=214.034
FinishStatus=None
Lap=(1, 88.181, 30.340, 41.090, 16.752)
Lap=(4, 88.703, 30.594, 41.187, 16.921)
Lap=(5, 88.193, 30.123, 41.122, 16.948)
Lap=(6, 85.100, 28.402, 39.963, 16.736)
Lap=(7, 87.852, 29.910, 41.081, 16.862)16:12:15
Lap=(9, 84.298, 27.942, 39.908, 16.448)
Lap=(12, 84.450, 28.648, 39.033, 16.770)
Lap=(13, 84.240, 28.156, 39.856, 16.228)
[Slot001]
Driver=Karl Larson
Vehicle=1. Nakasumi Takasumi
VehicleClass=Season 2009
Position=1
Laps=26
InSector=1
BestLap=84.363
LastLap=84.240
BestSectors=(27.942, 39.033, 16.228)
LastLapSectors=(28.156, 39.856, 16.228)
Sectors=(-1.000, -1.000, -1.000)
Pitstops=4
InPits=1
TimeGapToLider=0.000
LapGapToLider=0
TimeGapToPrev=0.000
LapGapToPrev=0
LapDistanceTravelled=214.034
FinishStatus=None
Lap=(1, 88.181, 30.340, 41.090, 16.752)
Lap=(4, 88.703, 30.594, 41.187, 16.921)
Lap=(5, 88.193, 30.123, 41.122, 16.948)
Lap=(6, 85.100, 28.402, 39.963, 16.736)
Lap=(7, 87.852, 29.910, 41.081, 16.862)16:12:15
Lap=(9, 84.298, 27.942, 39.908, 16.448)
Lap=(12, 84.450, 28.648, 39.033, 16.770)
Lap=(13, 84.240, 28.156, 39.856, 16.228)
So nun brauch ich Daten immer erst ab [Slot000], [Slot001] .... [Slot030]
Also z.b aus [Slot000]
Driver, Position, Laps, BestLap
Also kann es sein das beim Auslesen auch mal Zeilen übersrpungen werden.
danach soll ein Zeilenumbruch eingeleitet werden und die Daten für [Slot002] ausgegeben werden und das so weiter bis [Slot030]
Mein letzter kläglicher Versuch war mit hilfe der Forumssuche aber brachte auch nicht das gewünschte ergebnis.
Also bisher scheitert es schon daran überhaut nur 1 Datensatz selectiert auszulesen.
Auch gefällt mir die Ausgabe mit print_r nicht da dort immer der Arrayname mit ausgegeben wird.
Ich hoffe das ich mir hier überhaupt was machbares aufgebrummt habe.
Vielen Dank im Vorraus: Bart
Erst einmal ein Auszug der Textdatei (orginal wesentlich länger)
Ein Umbau auf Mysql ist leider nicht möglich da das Spiel diese Datei so anlegt.
[Session]
Scene=2009 FORMULA 1 FUJI TELEVISION JAPANESE GRAND PRIX
TrackLength=5834.1304
StartTime=2009-11-17 23:38:42
SessionTime=3544.006104
LengthLaps=-1
LengthTime=165
DarkCloud=0.00
Raining=0.00
AmbientTemp=25.9
TrackTemp=31.0
OnPathWetness=0.00
OffPathWetness=0.00
Wind=(0.0,0.0,0.0)
Session=Practice116:12:17
GamePhase=GreenFlag
YellowFlag=None
SectorYellowFlags=(0,0,0)
[Slot000]
Driver=Ryan Atwood
Vehicle=1. Felipe Massa
VehicleClass=Season 2009
Position=1
Laps=26
InSector=1
BestLap=84.363
LastLap=84.240
BestSectors=(27.942, 39.033, 16.228)
LastLapSectors=(28.156, 39.856, 16.228)
Sectors=(-1.000, -1.000, -1.000)
Pitstops=4
InPits=1
TimeGapToLider=0.000
LapGapToLider=0
TimeGapToPrev=0.000
LapGapToPrev=0
LapDistanceTravelled=214.034
FinishStatus=None
Lap=(1, 88.181, 30.340, 41.090, 16.752)
Lap=(4, 88.703, 30.594, 41.187, 16.921)
Lap=(5, 88.193, 30.123, 41.122, 16.948)
Lap=(6, 85.100, 28.402, 39.963, 16.736)
Lap=(7, 87.852, 29.910, 41.081, 16.862)16:12:15
Lap=(9, 84.298, 27.942, 39.908, 16.448)
Lap=(12, 84.450, 28.648, 39.033, 16.770)
Lap=(13, 84.240, 28.156, 39.856, 16.228)
[Slot001]
Driver=Karl Larson
Vehicle=1. Nakasumi Takasumi
VehicleClass=Season 2009
Position=1
Laps=26
InSector=1
BestLap=84.363
LastLap=84.240
BestSectors=(27.942, 39.033, 16.228)
LastLapSectors=(28.156, 39.856, 16.228)
Sectors=(-1.000, -1.000, -1.000)
Pitstops=4
InPits=1
TimeGapToLider=0.000
LapGapToLider=0
TimeGapToPrev=0.000
LapGapToPrev=0
LapDistanceTravelled=214.034
FinishStatus=None
Lap=(1, 88.181, 30.340, 41.090, 16.752)
Lap=(4, 88.703, 30.594, 41.187, 16.921)
Lap=(5, 88.193, 30.123, 41.122, 16.948)
Lap=(6, 85.100, 28.402, 39.963, 16.736)
Lap=(7, 87.852, 29.910, 41.081, 16.862)16:12:15
Lap=(9, 84.298, 27.942, 39.908, 16.448)
Lap=(12, 84.450, 28.648, 39.033, 16.770)
Lap=(13, 84.240, 28.156, 39.856, 16.228)
Also z.b aus [Slot000]
Driver, Position, Laps, BestLap
Also kann es sein das beim Auslesen auch mal Zeilen übersrpungen werden.
danach soll ein Zeilenumbruch eingeleitet werden und die Daten für [Slot002] ausgegeben werden und das so weiter bis [Slot030]
Mein letzter kläglicher Versuch war mit hilfe der Forumssuche aber brachte auch nicht das gewünschte ergebnis.
PHP-Code:
function parse_ini($filename, $process_sections = false)
{
function replace_process(& $item, $key, $consts)
{
$item = str_replace(array_keys($consts), array_values($consts), $item);
}
$buf = get_defined_constants(true); // PHP version > 5.0
$consts = $buf['user'];
$ini = parse_ini_file($filename, $process_sections);
array_walk_recursive($ini, 'replace_process', $consts);
return $ini;
}
define("[Slot001]", '/test');
print_r(parse_ini(dirname(__FILE__).'/test.txt'));
Auch gefällt mir die Ausgabe mit print_r nicht da dort immer der Arrayname mit ausgegeben wird.
Ich hoffe das ich mir hier überhaupt was machbares aufgebrummt habe.
Vielen Dank im Vorraus: Bart
Kommentar