Text Datei Parsen

Hallo,

hab nen kleines Problem, gerne würde ich eine Text Datei Parsen des USV, die LogDatei sieht so aus:

Datum, Zeit, Eingang U, Eingang F, Eingang P, Ausgang U, Ausgang F, Ausgang Last, Batterie U, Temperatur, Batterie Kap., Batteriezeit
04/14/2010,16:39:03,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,16:44:03,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,16:44:38,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,16:49:38,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,16:54:40,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,16:59:46,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,17:34:05,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,17:39:05,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00
04/14/2010,17:40:28,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00

Die aktuellsten Zahlen sind ganz unten, gerne würde ich nur die letzte Zeile Parsen, wie geh ich da am besten vor?

mit:

$file = file_get_contents('C:\Programme\UPS\upsman\upsdata.csv'); // gesamte Datei in einen String einlesen
$lines = explode("
", $file);      // String in Zeilen zerlegen und in ein Array schreiben
$lastentry = $lines[count($lines)-2]; // letzte Zeile extrahieren
$data = explode(";", $lastentry);     // Daten in ein Array schreiben

probier es mal so.

$file = file("C:\Programme\UPS\upsman\upsdata.csv'");

$lastentry = $file[count($file)-1]; // letzte Zeile extrahieren 
$data= explode(",", $lastentry); // Daten in ein Array  schreiben
print_r($data);

Danke Rainer,

nun bekomme ich den letzten Wert.

04/14/2010,21:06:39,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00

Weiss vielleicht einer wie ich die Werte stückeln kann und somit die Werte als Variablen anlege?

vlt so.
Vorher eine Stringvariable anlegen.

SetValue(12345 , urldecode($data[0]));

Aber um erstmal zu sehen was rauskommt kannst Du es mal so versuchen.

 echo($data[0]);

bei der 0 sollte 04/14/2010 rauskommen, bei der 1 dann 21:06:39.
Ungetestet hoffe das es so geht. Urdecode kannst Du denke ich auch weglassen

Hallo,

mit $data[0] bekomme ich den kompletten Wert …

04/14/2010,21:25:59,230.00,50.00,,,0.00,100.00,0.00,0.00,100.00,10.00

mit $data[1] bringt er mit den Fehler :

Notice:  Undefined offset: 1 in [USV\USV Modul\USV] on line 7

Muss ich da noch nen Offset angeben?

Und wie sieht es damit aus ?
Wenn der String immer gleich lang ist.

// Die ersten 20 Zeichen von $string ausgeben:
echo substr($data, 0, 20);

Hab den Fehler gefunden:

   <?
$file = file_get_contents('C:\Programme\ups\upsman\upsdata.csv'); // gesamte Datei in einen String einlesen
$lines = explode("
", $file);      // String in Zeilen zerlegen und in ein Array schreiben
$lastentry = $lines[count($lines)-2]; // letzte Zeile extrahieren
$data = explode(",", $lastentry);     // Daten in ein Array schreiben
setvalue (27408 /*[USV\USV Modul\Test]*/ , $data[0]);
echo $data[1];
?>

zwar liegt der bei:


//richtig:
$data = explode(",", $lastentry);     // Daten in ein Array schreiben

//falsch
$data = explode(";", $lastentry);     // Blöde ";" hatte sich eingeschlichen

Danke trotzdem für die Mühe, nun kann ich mit

$Datum = $data[0];
$Zeit  = $data[1];

daten auslesen :wink:

Na dann, würde an deiner stell oben das Leerzeichen vor >? wegmachen .

schon erledigt, DANKE!!