Mit C++ Textdateien parsen

Weizentrinker

Grünschnabel
Also ich möchte eine Textdatei durchsuchen nach Schlüsselwörten und von diesen Stellen Daten entnehmen. Gibt es da nen Tutorial wie man das macht ? Habe leider nichts gefunden was ich verstanden habe. :(

Danke schonmal, Grüße Thomas
 
Entweder du liest jede Zeile komplett aus, und teilst dann die Zeichenkette auf( etc. ),
oder du liest jedes Zeichen einzeln und verwaltest nebenbei ein wachsendes Array, das bis zum Leerzeichen Daten aufnimmt.

Wie genau du das anstellst bleibt dir überlassen.

Falls du noch mehr hilfe brauchst, dann meld dich einfach nochmal hier im Forum. ;)
 
Hmm soll es nur für WIndows sein, dann kann ich INF empfehlen, es gibt Funktionen, die dir sehr viel Arbeit ersparen ...
---------

Ansosten, wie oben schon erwähnt halt jede zeile auslesen und nach bestimmten Kreterien teilen und analysieren.

Siehe dazu fopen, fclose, fread, strstr, split, etc ;)

MfG
 
hm also im Optimalfall wollte ich das mit "Tokens" machen, wobei ich selber nicht mal genau weiss was das genau ist. Da das ganze für mein Studium abgegeben werden muss, soll ich das ganze per flex oder bison schreiben, wobei ich bislang einfach nicht verstehe wie das Grundprinzip dahinter aussieht. Es wäre also super wenn jemand nen einfaches tutorial zu dem Thema kennt oder vllt nen bissl beispielcode über hat.

Danke schonmal

Thomas :)

PS: Ist dieser Ansatz eigentlich sinnvoll oder ist es unter Umständen einfacher das Ganze mit fopen etc anzugehen ?
 
hm also im Optimalfall wollte ich das mit "Tokens" machen, wobei ich selber nicht mal genau weiss was das genau ist. Da das ganze für mein Studium abgegeben werden muss, soll ich das ganze per flex oder bison schreiben, wobei ich bislang einfach nicht verstehe wie das Grundprinzip dahinter aussieht. Es wäre also super wenn jemand nen einfaches tutorial zu dem Thema kennt oder vllt nen bissl beispielcode über hat.

Danke schonmal

Thomas :)

PS: Ist dieser Ansatz eigentlich sinnvoll oder ist es unter Umständen einfacher das Ganze mit fopen etc anzugehen ?

Wo liegt denn dein genaues Problem?

Lese, wie schon oben geschrieben, jede Zeile aus der Datei ( oder X Zeichen, oder .. )
und dann schmeiss den String durch nen 'Hexler' der deinen String je nach Zeichen aufteilt.

Wie genau das mit der Teilung geht, davon gibts ja genug Quellcode da draußen, oder du fragst hier auch nochmal nach nem Code.
 
Also ich habe als Beispiel vom Professor folgenden Quellcode bekommen:

Code:
%{ 

#include <stdio.h>

%}


letter		[A-Z]|[a-z]
email		{letter}+"@"{letter}+("."{letter}+)*

%%

{email} 	{ printf("%s is a valid email address.\n",yytext); }
.		{ printf("ERROR: %s is not part of a valid email address! \n",yytext); }

%%

int main(int argc,char** argv)
{
  FILE *source_file;

  if (argc>1)
    source_file = fopen(argv[1],"r");
  else
    return -1;

  yyin=source_file; 
  yylex();
  fclose(source_file);
  return 0;
}
Dies soll mit FleX arbeiten. Wenn ich diese Datei jedoch in Dev-C++ einfüge bekomme ich immer einen Syntaxfehler wegen den %-Zeichen. Zu so einem Thema wäre ein Tutorial irgendwo super, da ich nicht verstehe wie ich so einen Quellcode vernünftig einbinde.

Grüße Thomas
 
Zurück