infile.readline() bestimtme stellen auslesen

nico_wagner

Cadet 3rd Year
Registriert
Nov. 2013
Beiträge
59
Hallo,
ich habe ein Logfile, welches als CSV exportiert wird.
Habe den Quellcode bereits mit einigen Filtern versehen, um nicht jeglichen Müll zu bekommen.
Nun meine Frage:
1. Die ersten 10 Stellen jeder Zeile stellen das Datum da: 2013-09-10...wie kann ich exakt diese Stellen in herauslesen? diese sollen dann in einen String geschrieben werden.

2. in den Zeilen stehen Sachen wie "sync=true" oder "device=iPad2%2C1&df"
Mein Programm sucht bis jetzt nach z.B sync oder device und kann mir sagen ob diese existien. Somit kann ich schonmal die Spalte mit "" beschreiben, wenn diese nicht vorhanden sind. Jetzt möchte ich aber auch den Inhalt reinschreiben könne.
also "true" oder iPad2%2C1&df... welche Möglichkeiten bieten sich da an?

Ich hoffe Ihr könnt mir helfen:)
 
Um welche Programmiersprache geht es denn überhaupt? Könntest auch bissl Code zeigen.
 
Es kommt wirklich wie sasdensas schon sagt auf die programiersprache drauf an.
in c lässt sich sowas echt gut mit der funktion fscanf() realisieren
 
Oh, voll vergessen...
es geht um JAVA.

hier die Klasse:

Code:
    				if (aktline.contains("av=")){
    					av = "x";
    				}
    				else {
    					av = "";
    				}
    				if(aktline.contains("pv=")){
    					pv = "x";
    				}
    				else {
    					pv = "";
    				}
    				if(aktline.contains("uid=")){
    					uid = "x";
    				}
    				else{
    					uid = "";
    				}
Das sind die Überprüfungen ob die Parameter überhaupt da sind.
Anstelle von X soll nun das was hinter dem gleich steht stehen.
So sieht eine Zeile im log file aus:

2013-09-10 04:26:16 logv=logging-4.0&device=Win32&pv=NA&cid=NA&logi=2&
die gehen natürlich noch um einiges weiter und haben noch mehr parameter drin
 
Da führen viele Wege nach Rom, z.B.:
1. Möglichkeit via Reguläre Ausdrücke http://openbook.galileocomputing.de/javainsel9/javainsel_04_007.htm
2. Möglichkeit via Split: http://openbook.galileocomputing.de/javainsel9/javainsel_04_008.htm
Also der erste Split nach " " leerzeichen, dann hat man Datum, Uhrzeit + Rest getrennt
Dann den Rest nach "&" splitten, dann kommt man an die irgendwas=wert.
Anschließend nach "=" splitten um an den Bezeichner + Wert zu kommen.
Dabei müsste man mittels einer For-Each-Schleife durch die Arrays iterieren.
 
OK..ich würde es also so aufbauen:
die Zeile wird ausgewählt-->Die Zeile wird gesplittet --> in den gesplitteten Arrays wird nach meinen Filtern gesucht-->Ausgabe--> nächste Zeile....

Kann ich das so machen? Oder gibt es einen simpleren Weg?
 
Zurück
Oben