Zum Inhalt springen

C-Frage


Agos

Empfohlene Beiträge

Hallo,

ich bin totaler Anfänger in C.

Wer kann mir weiterhelfen. Das ist bestimmt superleich.Also:

Ich lese aus einer textdatei aus und möchte nun nach bestimmten Strings suchen.Wenn zum Beispiel: "Start" irgendwo im Text gefunden wird, dann möchte ich die Zahl die danach kommt in eine Variable speichern.

Helft mir bitte.Das ist bestimmt nicht so schwer, nur ich weiß eben nicht wie.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

die Suche nach strings in einem textfile ist in C garnicht nal so trivial, wie es scheint. Es gibt aber Standardalgorithmen, die sich ganz einfach einbauen lassen. Wenn Du bis heute Abend warten kannst, guck ich mal zu Hause in meinem Buch nach.

'Aber hier wird's doch wohl irgendjemanden geben, der das kann oder ein C-Buch bei der Hand hat'

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also fangen wir mal an:

zuerst eine Variable deklarieren (FILE *stream ;)

nun wird die Datei geoeffnet (stream = fopen( "datei.txt", "r" )) unter datei.txt den namen des files eingeben ; r ist der faktor mit dem es geoeffnet wird hierbei gilt:

°"r" oefnet nur zum lesen

°"w" erstellt eine datei nur um in sie zu schreiben, existiert sie schon werden alle Inhalte zerstoert.

°"a" wie w nur wird hier alles ans Ende geschrieben

°"r+" oeffnet eine existierende Datei zum Schreiben und Lesen

°"w+" Oeffnet eine Datei zum Schreiben und Lesen die Inhalte der Datei werden geloescht wenn sie existiert ansonsten wird die Datei erstellt.

die funktion gibt NULL zurueck wenn sie nicht erfolgreich war

nun werden daten ueber (fscanf(stream,"test%lf/n",dummy)) eingelesen (bei misserfolg kommt EOF zurueck.

du musst also erst das fscanf dann den Namen der Datei (hier stream vom der deklaration) dann wie beim normalen einlesen von der eingabe die argumente und schliesslich in welche variable er das ganze einlesen soll [ziemlich kompliziert, man muss immer wissen wo er was einscannen soll und den zeiger auf den neuen wert setzen.

im beispiel wird der double dummy eingelesen, der nach dem wort test steht und danach (es muss das wirkliche ende der zeile sein) der cursor auf die neue zeile gesetzt. die zeile in der txt waere : test2.69]

zum schreiben in eine datei (fprintf (stream, "\ntest \n") ;)

wie bei printf nur schreibt man vorne seine file variable und das f davor

zum schluss schliesst du die datei mit (fclose( stream ) ;)

mit (rewind(stream) ;) setzt du den cursor auf den anfang der datei

so und jetzt noch das suchen in einer Zeile:

int ausrufe;

char read;

FILE *stream;

stream = fopen("test.ini","r+");

fgets(read,128,stream);

ausrufe = strcspn(read,"Start");

fclose(stream);

mit strcspn wird die position des Wortes Start angegben (im charfeld read)

um den wert danach auszugeben musst du nur das read feld ab (ausrufe+(anzahl der zeichen von Start) ausgeben

OKAY ich hoffe ich hab dir geholfen wenn nicht frag einfach noch mal

Tschüssie

Hasi

[Dieser Beitrag wurde von 007hasi am 11. Januar 2001 editiert.]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...