Name einer Datei aussuchen

Nein, hast du nicht.

Und ich glaube du hast es immer noch nicht verstanden.

Es geht um den Typ des Parameters und der Variablen. Nochmal: Was wird (für ein Typ) erwartet? Und was (für ein Ding) hast du übergeben?

Ohh mist :D oh man-.- ich bin doof in Programmierung :D
okay gut ich bin zwar in die richtung tendiert aber war nicht 100% sicher
also einen char/string dahin setzen?=)
 
Ich bin fast am Ziel =) was ich nur nicht verstehe warum das Programm abstürzt
Ich weiß ich bin hier voll die belastungsprobe für euch :)


C:
 //Deklaration der Variablen
char prefix[1024]="";
char format[50]="";
char datum;
char x;

//String kopieren 1 an 2
strcpy (prefix, format);
//string 1 an String 2 anhängen
strcat (format, "%8d.log");




  //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");
  sprintf(x, "%s%8dNeu.log", prefix, datum);
 
 
  //Ü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;
  //sscanf(fileInput = fopen("squid123.log", "r"), format, &datum);
  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);
}




Und wenn ich bei diesen Teil hier
C:
//Festlegen des Pfades für die Output-Datei
  FILE *fileInput;
  sscanf(fileInput = fopen("squid123.log", "r"), format, &datum);
  fileInput = fopen("squid123.log", "r");


Dann stürzt das Programm nicht ab, aber ich bekomme keine Ausgabe finde aber den Fehler nicht :/
Gruß Paper
 
Zuletzt bearbeitet von einem Moderator:
Hi.
C:
//String kopieren 1 an 2
strcpy (prefix, format);
format ist ein leerer String (Länge = 0).
prefix ist ein leerer String (Länge = 0).

Du kopierst also einen leeren String in einen leeren String. Wozu?
C:
//string 1 an String 2 anhängen
strcat (format, "%8d.log");
Du hängst an einen leeren String etwas an. Du könntest genauso gut gleich strcpy nehmen. Oder einfach den String gleich entsprechend initialisieren:
C:
char format[50]="%8d.log";
So, und nun? Das andere ist doch Code den du schon vor Tagen gehabt hast. Ich dachte du wolltest den Namen vom Benutzer einlesen? Der Teil ist irgendwie verloren gegangen... ? :confused:

\edit: Evtl. solltest du genau das erstmal versuchen: Lies vom Benutzer einen Namen für die Datei ein.

Gruß
 
Zuletzt bearbeitet:
Ich dreh durch...egal wie ich das mache mit strcpy oder strcat es will einfach nicht funktionieren.
strcpy (source-string, destination-string);

strcat (destination-string, source-string);

oder nicht?


Da hab ich mir aber was anderes überlegt...stellen wir uns mal vor der Accesslog heißt garnicht Squid123 (was sowieso der Fall sein wird) :)
gibt es eine möglichkeit das er den Accesslog aus dem bestimmten Ordner holt? auch wenn wir nicht wissen wie der vorher heißt?

Irgendwie das er vielleicht nach .log sucht und diesen dann nimmt? :D
 
Zuletzt bearbeitet von einem Moderator:
strcpy/strcat: strcpy ist falsch.
Die destination ist immer der erste Parameter.

Zum log-suchen: Haben wir nicht schonmal auf der ersten Seite über das geredet?
FindFirstFile und FindNextFile.
 
Zum log-suchen: Haben wir nicht schonmal auf der ersten Seite über das geredet?
FindFirstFile und FindNextFile.

Jo stimmt =) ich schau mal =)


Mal ne frage:
Hat jemand i.welche guten seiten wo erklärungen/tutorials etc. sind?
Eure Empfehlungen =)
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück