Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C-Frage

Empfohlene Antworten

Veröffentlicht

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.

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'

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.]

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Ferris:

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

@hasi

cool!!!

2 Fliegen mit einer Klappe geschlagen. Agos ist geholfen und mir haste meinen Abend gerettet. smile.gif

Gruß

Ferris

Danke HAsi für die Mühe

ich hätte nie gedacht, das man hier so schnell so gute Antworten bekommt, probiers gleich mal aus.

Dank natürlich auch an Ferris.

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">Zitat:</font><HR>Original erstellt von Ferris:

@hasi

cool!!!

2 Fliegen mit einer Klappe geschlagen. Agos ist geholfen und mir haste meinen Abend gerettet. :)

Gruß

Ferris

@hasi

hast Du doch gearde selber gemacht!?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.