problem mit strings aus textdatei in feld kopieren...

moniduse

Enthusiast
Thread Starter
Mitglied seit
23.05.2004
Beiträge
237
hier mal der teil der aufgabe, bei dem ich nich weiter weiß:

Einlesen der Textdatei und Abspeicherung der einzelnen Textzeilen der Datei.
• Die Verwaltung der eingelesenen Zeilen erfolgt über ein Feld mit 'Zeiger auf char'-Elementen.
• Die eigentlichen Stringvariablen (char-Felder) für die einzelnen Zeilen sind zur Laufzeit des
Programms mit malloc oder calloc dynamisch zu erzeugen. Diese dynamischen Strings dürfen
nur die für die jeweilige Zeile benötigte Größe strlen(..)+1 haben.
• Das Lesen von jeweils einer Zeile aus der Textdatei erfolgt mit dem gelieferten
Unterprogramm GetFileLine, das sich in der Programm-Bibliothek fileread.h/cpp
befindet.
char* GetFileLine( char* PtrFileName, char*PtrTextBuf, int TextBufSize );
Die Funktion liefert bei jedem Aufruf eine Zeile der Textdatei. Als Rückgabewert wird ein
Zeiger auf das erste Zeichen der Textzeile, bzw. bei Öffnungsfehler oder Dateiende die
Konstante NULL geliefert.

hier mal so in etwa was ich bisher habe. funktioniert aber nicht so richtig.

Code:
#include <stdio.h>
#include <f:\textanalyse\fileread.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

/*char filename (int* ende, char* eingabe);
char read (char* zeigerfeld[26], char* file[81]);*/


int main (void) {
	int progende=0;

	char* zeigerfeld[26];
	do {
/*    char filename;  */
	 /*	filename (&progende, &filename);*/
   	printf("[e=Ende, Return=TESTTEXT] : ");
  	char eingabe[81];
		gets(eingabe);
    puts(eingabe);
/*  	int* ende; */
		if (eingabe=="e") progende=1;
  		else if (eingabe=="\n") strcpy(eingabe, "testtext");


    if (progende==0) {
		 	/*	read (&zfeld, filename);*/
    /*	char* zeigerfeld[26];*/
/*  		char* file;*/
    	int j=0;
  		for (j; j<=26; j++) zeigerfeld[j] = NULL;

  		int i=0, k=0;
  		char textbuffer[81];
  		do {
				getFileLine("testtext", textbuffer, 81);
				if (NULL == textbuffer) i=1;

        puts(textbuffer);

	 		 	zeigerfeld[k] = (char*) calloc (strlen(textbuffer)+1, sizeof (char));
	 		 	strcpy (zeigerfeld[i], textbuffer);
        k++;
  		} while (i==0);

    } else /* leer */;
	} while(progende==0);

/*  getchar(); */

	return 0;
}
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
programmiersprache, anwendunsbereich wäre nicht schlecht zu wissen!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh