Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
datei parsen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sellmi
Gast





BeitragVerfasst am: 12. März 2002 18:42   Titel: datei parsen

hi ich will ein programm schreiben welches (ich weiss dases auch mit grep und cut geht unter linux ) aus einer nmap-log file , zeile für zeile aus liest und wenn am ende einer zeile Up steht dann die ip die am anfang der zeile steht mir aus giebt ,beispiel

host: 123.123.123.123 (telekom.de) status:Up


aber er gibt immer nur die erste ip aus warum ?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


main(){
FILE *stream;
char *loc,dateiname[22];
char si[61];
char zeichen1[6];
char zeichen2[64];
int ch=6;

strcpy(dateiname,"/home/melsa/pinging");
strcpy(zeichen1,"Up");

if((stream = fopen(dateiname,"r"))
==NULL) {
printf("
Error bein öffnen
");
exit(1);
}


for(;!feof(stream) {

fgets(si,62,stream);

strcpy(zeichen2,si);

loc=strstr(si,zeichen1);

if(loc != NULL){
for (ch;ch<=19;ch++){
printf("%c",zeichen2[ch]);
}

}
 

Oli
Gast





BeitragVerfasst am: 13. März 2002 21:43   Titel: Re: datei parsen

Probier mal:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>


main(){
FILE *stream;
char *loc,dateiname[22];
char si[61];
char zeichen1[6];
char zeichen2[64];
int ch=6;

strcpy(dateiname,"/home/melsa/pinging");
strcpy(zeichen1,"Up");

if((stream = fopen(dateiname,"r"))
==NULL) {
printf(" Error bein öffnen ");
exit(1);
}


for(;!feof(stream)Wink{

fgets(si,62,stream);

strcpy(zeichen2,si);

loc=strstr(si,zeichen1);

if(loc != NULL){
for (ch=6;ch<=19;ch++){
printf("%c",zeichen2[ch]);
}
printf("\n");
}
}

}

Ich habe einige Klammern anderst gesetzt und ch mit 6 initialisiert.
 

prospero
Gast





BeitragVerfasst am: 15. März 2002 11:18   Titel: Re: datei parsen

versuch mal dies, gibt dir egall wie lang die ip adresse ist diese aus, gibt alles aus bis zum naechsten leerzeichen:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX 512

int main(int argc, char **argv) {

FILE *fd;
char *filename = "test.log";
char strline[MAX];
char searchstr[] = "Up";
char *p;

fd = fopen(filename, "r");

if(fd == NULL) {
fprintf(stderr, "cannot open %s", filename);
exit(1);
}

while(fgets(strline, MAX, fd) != NULL){
if(strstr(strline, searchstr) != NULL){
p = strpbrk(strline, "1234567890");
while(p[0] != ' '){
printf("%c", *p);
p++;
}
printf("\n");
}
}

fclose(fd);

exit(0);

}
 

prospero
Gast





BeitragVerfasst am: 15. März 2002 11:50   Titel: Re: datei parsen

wobei zur sicherheit, wenn mal nach der ip kein leerzeichen kommt du noch einen abbruchkontrolle implementieren solltest.

int i=0;
while(p[0] != ' ' && i < 15){
printf("%c", *p);
p++;
i++;
}


so in der art

prospero
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy