ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1293
1293
EMPFEHLEN
-
Hi, ich finde einfach keinen Ansatz.
Mein Problem ist, dass ich eine access.log-Datei habe, welche ich auslesen möchte. Diese besteht aus mehrern Zeilen:
Zeile1:
172.17.21.3 - struenkm [11/Mar/2004:15:32:42 +0100] "GET http://counters.honesty.com/cgi-bin/...y-counter.cgi? HTTP/1.0" 302 620 TCP_MISS
EFAULT_PARENT
Zeile2:
172.17.21.3 - struenkm [11/Mar/2004:15:32:42 +0100] "GET http://banners.ebay.com/de/Ads/versandservice_70x20.gif HTTP/1.0" 200 1254 TCP_REFRESH_HIT
EFAULT_PARENT
...
Das mit der Datei öffnen ist ja klein Problem. Ebenso wie das Auslesen mit Hilfe der while-Schleife:
while(!feof(rdatei))
{
}
Bisher habe ich in der Schleife mit dem Befehl:
fscanf (rdatei,"%s",&daten[0];
gearbeite und habe dann diese immer gleich in eine anderes Datei geschrieben. Nur habe ich da den ganzen Zeilensatz in der Variable. Nun möchte ich aber gerne in eine Variable nur die ip schreiben, in eine andere den "-", in die nächste das Datum und so weiter. Wie bekomme ich es denn hin, dass er immer nur bis zu einem vorgegeben Zeichen liest, diesen dann wieder als Startpunkt ansieht und bis zum nächsten vorgegeben Endpunkt weiterliest und so die entsprechenden Variablen füllt. Bevor er dann in die nächste Zeile geht werden nur die Variablen in einen Datei geschrieben, welche für mich relevant sind, d.h. die Variablen können, wenn er in die nächste Zeile springt von neuem gefüllt werden. Ebenso sollen Zeilen, welche mit einem bestimmten Zeichensatz beginnen übersprungen werden.
Ich besitze leider nur Grundkenntnisse in C, doch ich denke, dass dies nicht so wild sein wird.
mfg. AndreasGeändert von Pfeiffer (01.06.04 um 15:34 Uhr)
-
01.06.04 15:55 #2
- Registriert seit
- Jan 2004
- Ort
- Wien
- Beiträge
- 24
Hi!
Deklariere zuerst eine Variable, dann lies die ganze Zeile in die Variable ein.
Allerdings würde ich ein anderes Verfahren wählen, wie zb:
Code :1 2 3 4 5 6 7 8 9 10
#define LEN 1024 char Variable[LEN]; char *IP; while(fgets(Variable,LEN,f)) { IP=strchr(Variable,'-'); // Sucht nach dem "-" // IP ist jetzt alles vor dem "-" }
Genau weiß ich es leider auch nicht mehr, aber den Ansatz kann ich dir vielleicht wengistens geben
Probier einfach in bisschen mit strchr herum. Ach ja, vorher noch <string.h> includen!
GreetzWenn du weißt, dass du nichts weißt, bist du sehr wissend!
-
Hi,
danke für die Antwort, mit deinem Code bekomme ich aber alles ab dem '-' angezeigt. Ich bräuchte aber was vor dem '-' steht in einer variable. Habe mir die Zeile in eine Variable eingelesen und habe auch die Position wo das '-' steht. Wie bekomme ich nun das, was vom Anfang bis zu der Postition steht, bzw. kann diese sofort in eine Variable einlesen?
mfg. Andreas
-
02.06.04 16:54 #4
- Registriert seit
- Nov 2002
- Ort
- Altdorf bei Nürnberg
- Beiträge
- 3.027
Hallo,
du kannst es so machen:
hthCode :1 2 3 4 5 6 7 8 9 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
/* als erstes brauchst du eine Funktion, die eine Datei bis zum Zeilenende weiter ausliest */ void skipLine(FILE *fileF) { char cR; do { cR = fgetc(fileF); } while((cR != '\n') && (cR != EOF)); } /* dann kannst du einfach den ersten String aus der Zeile per fscanf auslesen: */ FILE *fileLog; char szIp[16]; fileLog = fopen("access_log", "r"); if (fileLog == NULL) { fprintf(stderr, "Fehler beim oeffnen der Logdatei.\n"); return 1; } while (!feof(fileLog)) { fscanf(fileLog, "%s", szIp); skipLine(fileLog); printf("Ip: %s\n", szIp); } fclose(fileLog);Geändert von Fabian Hofmann (02.06.04 um 17:02 Uhr)
Ähnliche Themen
-
Bestimmte teile aus einer Datei lesen
Von VanHellsehn im Forum PHPAntworten: 5Letzter Beitrag: 17.06.08, 16:55 -
Bestimmte Zeile aus Datei lesen
Von helavi im Forum JavaAntworten: 4Letzter Beitrag: 14.12.07, 09:11 -
bestimmte zeile mit batch datei lesen
Von Blame23 im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 03.08.07, 10:20 -
Split-Funktion vs. Zeichen für Zeichen lesen
Von Yoah im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 12.01.05, 16:32 -
bestimmte zeilen aus datei lesen
Von moistwanted im Forum C/C++Antworten: 0Letzter Beitrag: 05.11.04, 19:43





Zitieren
Login






