tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
JA
ANTWORTEN
23
ZUGRIFFE
870
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Paper Beitrag anzeigen
    Mal eine andere frage den Pfad zur Datei die eingelesen wird habe ich momentan so angegeben

    Code c:
    1
    2
    3
    
    //Festlegen des Pfades für die Input-Datei
      FILE *fileInput;
           fileInput = fopen( "squidN123.log", "r");

    das geht aber nur wenn die Datei sich im gleichen Ordner befindet wie das Programm.
    Das ist schonmal nicht richtig. Die Datei muss sich im aktuellen Verzeichnis (CWD) befinden, wo das Programm liegt ist unwichtig.
    Zitat Zitat von Paper Beitrag anzeigen
    Geht das irgendwie das die Software drauf zugreift auch wenn die 2 Dateien in unterschiedlichen Verzeichnissen liegen?
    Ja, das geht. Dann mußt du den Pfad eben angeben (z.B. als Kommandozeilenoptionen?)

    Gruß
    Paper bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  2. #17
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    Jetzt muss ichs nurnoch schaffen das im Neu angelegten Squid alles drin steht was im Originalen Squid auch steht. Quasi so

    Originaler Squid
    Code :
    1
    2
    3
    
    1310139853.232      3 xxx.xxx.xxx.xxx TCP_MISS/304 205 GET http:www.bla-keks.gif- DIRECT/xxx.xxx.xxx.xxx - 
    1310139853.235      3 xxx.xxx.xxx.xxx TCP_MISS/304 205 GET http:www.bla-keks.gif- DIRECT/xxx.xxx.xxx.xxx - 
    1310139853.237       3 xxx.xxx.xxx.xxx TCP_MISS/304 205 GET http:www.bla-keks.gif- DIRECT/xxx.xxx.xxx.xxx -

    der neue Squid soll so aussehen.

    Code :
    1
    2
    3
    
    8.7.2011 um 17:44:13   3 xxx.xxx.xxx.xxx TCP_MISS/304 205 GET http:www.bla-keks.gif- DIRECT/xxx.xxx.xxx.xxx - 
    8.7.2011 um 17:44:13   3 xxx.xxx.xxx.xxx TCP_MISS/304 205 GET http:www.bla-keks.gif- DIRECT/xxx.xxx.xxx.xxx -  
    8.7.2011 um 17:44:13    3 xxx.xxx.xxx.xxx TCP_MISS/304 205 GET http:www.bla-keks.gif- DIRECT/xxx.xxx.xxx.xxx -


    Weil mein momentaner Squid sieht so aus.
    Code :
    1
    2
    3
    
    Unix: 1310139853 --> Datum: 8.7.2011 um 17:44:13  Mitteleuropäische Sommerzeit  
    Unix: 1310139853 --> Datum: 8.7.2011 um 17:44:13  Mitteleuropäische Sommerzeit 
    Unix: 1310139853 --> Datum: 8.7.2011 um 17:44:13  Mitteleuropäische Sommerzeit

    Es ist halt immernoch der Code wie ich den gepostet hab Bei dem Teil habe ich noch nichts verändert. Ich komme da nur nicht zurecht, ich hatte mit getline oder sowas gerechnet aber fehlanzeige
     

  3. #18
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Bsp:
    Code c:
    1
    2
    3
    4
    5
    6
    
    while (fgets(line, ...) != NULL) {
      char* rest;
      if ((rest = strtok(line, " \t\n")) != NULL) {
        fprintf(out, "%s %s", Unix2Date(line, mode), rest);
      }
    }
    Gruß
    Paper bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  4. #19
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    Erstmal die Variablen deklarieren und das kann in die Funktion gepackt werden?
    Oder muss das an einen bestimmten Ort?
    Aber was an stelle des ... hin muss versteh ich irgendwie nicht =/


    Diese Meldungen gibt er mir aus...

    In function `logConvert':
    424 [Warning] passing arg 1 of `fgets' makes pointer from integer without a cast
    424 [Warning] passing arg 2 of `fgets' makes integer from pointer without a cast
    424 too few arguments to function `fgets'
    426 [Warning] passing arg 1 of `strtok' makes pointer from integer without a cast
    427 `out' undeclared (first use in this function)
    (Each undeclared identifier is reported only once
    for each function it appears in.)
    427 `mode' undeclared (first use in this function)



    Ich versteh das zwar ich kann es nur nicht umsetzen =/
    Geändert von Paper (17.11.11 um 10:45 Uhr)
     

  5. #20
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Etwas einfacher:

    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    
    while (fgets ... ) {
      int len;
      int uxtime;
     
      if (sscanf(puffer, "%d.%*d%n", &uxtime, &len) >= 1) {
        fprintf(... , "%s %s", Unix2Date(uxtime, mode), puffer + len);
      }
    }
    Paper bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  6. #21
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    Oh man ich bin zu blöd für den mist
    Das ist einfach nicht meine Welt


    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    
    while (fgets (puffer,50,&fileInput) {
      int len;
      int uxtime;
      
      if (sscanf(puffer, "%d.%*d%n", &uxtime, &len) >= 1) {
        fprintf(fileInput, "%s %s", Unix2Date(int unixzeit,int modusTime), puffer + len);
      }
    }



    so ungefähr? =/
    Geändert von Paper (17.11.11 um 12:02 Uhr)
     

  7. #22
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Paper Beitrag anzeigen
    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    
    while (fgets (rest,80,fileInput) {
      int len;
      int uxtime;
      
      if (sscanf(puffer, "%d.%*d%n", &uxtime, &len) >= 1) {
        fprintf(fileInput, "%s %s", Unix2Date(int unixzeit,int modusTime), puffer + len);
      }
    }

    so ungefähr? =/
    Ja, ungefähr.

    Du mußt doch nun wirklich gar nichts mehr tun. Den Code innerhalb der Schleife setzt du einfach in deine while(fgets...) Schleife ein und entfernst alles unnötige drumherum.

    Für dich:
    Code c:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    int logConvert()
    {
     
      //Zwischenspeicher fürs Einlesen
      char puffer[256];
      int line= sizeof(puffer);
     
      //Trennzeichen
      char del[]="\n";
     
      //Zählvariabeln
      int i =0;
     
      //Festlegen des Pfades für die Input-Datei
      FILE *fileOutput;
      fileOutput = fopen( "squidNeu.log", "w");
     
     
     
      //Überprüfung, ob Datei vorhanden ist
      if(NULL == fileOutput) {
        fprintf(stderr, "Fehler beim Oeffnen ...\n");
        return EXIT_FAILURE;
      }
     
      //Festlegen des Pfades für die Output-Datei
      FILE *fileInput;
      fileInput = fopen( "squid123.log", "r");
     
      //Überprüfung, ob Datei vorhanden ist
      if(NULL == fileInput) {
        fprintf(stderr, "Fehler beim Oeffnen ...\n");
        return EXIT_FAILURE;
      }
     
      //solange Zeilen vorhanden sind wird eingelesen
      while(fgets (puffer, line, fileInput))
        {
    /// neue Zeilen
          int len;
          int uxtime;
          if (sscanf(puffer, "%d.%*d%n", &uxtime, &len) >= 1) {
            fprintf(fileOutput, "%s %s", Unix2Date(uxtime, 1), puffer + len);
          }
    ////
        }
     
      //Schließen der Dateien
      fclose(fileInput);
      fclose(fileOutput);
    }
    Paper bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #23
    Paper Paper ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    56
    omg bin ich doof haha

    danke dir für deine gute und schnelle Hilfe
     

  9. #24
    paebels paebels ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    100
    Code cpp:
    1
    
    fileInput = fopen( "\\woimmerdasverzeichnissistwodiedateiliegt\\squidN123.log", "r");
    könnte sein das ich zuviel \ habe oder zuwenig bin mir gerad nicht sicher
    Sry gerade geshen ist ja geklärt
    mfg
    Geändert von sheel (17.11.11 um 12:41 Uhr) Grund: Tagsreparatur
     

Ähnliche Themen

  1. Beim Programm Start Passwort Feld BITTE HILFE
    Von Roma3 im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 14.05.08, 16:54
  2. Antworten: 2
    Letzter Beitrag: 10.03.08, 22:07
  3. Antworten: 2
    Letzter Beitrag: 12.02.08, 19:26
  4. Antworten: 0
    Letzter Beitrag: 07.08.07, 18:12
  5. Antworten: 8
    Letzter Beitrag: 14.06.04, 10:37