UNIX-File lesen
-
Hallo!!
Ich habe ein kleines Problemchen.
Ich habe in unsrer Firma auf einem Rechner einen Squid-Proxyserver. Dieser schreibt verschiedene Logfiles. Da diese allerdings im Unix-Format geschrieben Sind, kann ja C++ die Zeilenrückläufe nicht erkennen.Weiß jemand von euch, wie ich am besten eine Solche Datei zeilenweise einlese kann?
Vielen Dank im Voraus
Daniel
-
Doch C++ kann dies.
Du musst einfach die Datei zeilenweise einlesen, oder auf einmal,
und dann ein CString::Replace(.,.) anwenden, und "\n" mit "\r\n" ersetzen.Devil
-
Danke! Das funktioniert also doch

Hab aber jetzt noch eine Frage. In meiner Logdatei werden ja IP adressen, Uhrzeiten, Befehle usw. gespeichert. Dadurch kann die Länge der einzelnen Teile der Datei mal unterschiedlich sein (nicht jede URL ist gleich lang). Ich hab jetzt versucht die Datei mit fscanf auszulesen. Er liest mir die Datei allerdings nicht richtig ein (oftmals geht er einen Teil zu weit, z.B. die Uhrzeit steht am Platz von der IP-Adresse...).
Mithilfe welcher Platzhalter trennt fscanf eigentlich die einzelnen Teil?
Mfg
Daniel
-
robbyrc schrieb:
Er liest mir die Datei allerdings nicht richtig ein (oftmals geht er einen Teil zu weit, z.B. die Uhrzeit steht am Platz von der IP-Adresse...).
Ich glaube, Du suchst nach einer Funktion wie z.B. strtok, die einen String mittels angegebener Trennzeichen auftrennt.
robbyrc schrieb:
Mithilfe welcher Platzhalter trennt fscanf eigentlich die einzelnen Teil?
Mit gar keinen. Du gibst ja lediglich einen Formatstring an. Dort werden dann wie bei printf die Variableninhalte eingesetzt. Je nachdem, welche Formatspezifizierer Du verwendest, kann die Ausgabe von fprintf variieren...