Wie kann ich aus einem Text eine Zeile ausgeben (undetailliert! Beschreibung siehe unten!?

...komplette Frage anzeigen

1 Antwort

Ganz simpel. Lies die Datei zeilenweise aus (in ein Aggregat: Array, Liste, ...) und filtere danach. Das Schreiben würde ich an deiner Stelle erst zuletzt durchführen (also nicht synchron auf die Textdateien zugreifen).

Zeilenweise lesen mit C:

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *file;
char *line = NULL;
size_t length = 0;
ssize_t read;
file = fopen("IP_Adressen.txt", "r");
if(!file)
{
return 0;
}
while(-1 != (read = getline(&line, &length, file)))
{
// check line ...
}
fclose(file);
if(line)
{
free(line);
}
// write file ...
return 1;
}

Zeilenweise lesen mit C++:

#include <fstream>
#include <string>
int main()
{
std::ifstream file("IP_Adressen.txt");
std::string txtinf;
while (std::getline(file, txtinf))
{
char *text = strstr(txtinf, "DE");

if(text)
{ // ...
}
}
}

Beim Filtern suchst du die Zeilen mit DE heraus und parst aus den betreffenden Zeilen zusätzlich die IP. 

Antwort bewerten Vielen Dank für Deine Bewertung
Ucanaskme 13.05.2016, 14:37

Sry, ich habe dich leider immer noch nicht ganz verstanden :-( 

Was macht die -1 !=read da?

Sonst aber schonmal vielen Dank im Voraus und bis hierhin!

0
Ucanaskme 13.05.2016, 14:45
@Ucanaskme

Ok :-) 

Ist mir gerade schon aufgefallen...

Die obige Frage hat sich dann von selber geklärt :D 

Kannte die getline noch nicht und habe sie auch noch nie benutzt...

Sollte sich jetzt ändern...

Danke!

0

Was möchtest Du wissen?