Datei mit Schleife auslesen

cwriter

Erfahrenes Mitglied
Hallo Tutorials.de

Ich habe ein Programm geschrieben, das Lateinwörter auslesen und konjugieren soll. Bis jetzt funktioniert aber erst das erste Wort der Datenbank-Datei, beim Rest stürzt das Programm ab:

Code:
while(wortok==0)
  {                               
  
  do{
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!='+');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  fprintf(fa,"%s+",Abfrage);
  fseek(fa,0,SEEK_SET);
  fgets(Abfrage,256,fa);
  
  if(strcmp(Ruckmeldung, Abfrage)==0)
  {
  printf("\nWort in Datenbank gefunden:\n");
  break;

  }
  else
  {
  do
  {
  inhalt=getc(f);
  }while(inhalt!='|');
  continue;
  }  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  } 
//nächsten Schritt ausführen

Ich benutze den Dev-C++ Compiler (C) auf einem win7 64bit System (Ja ich weiss dass der Dev-C++ nicht mehr weiterentwickelt wird, aber Visual C++ spricht mich mit den vielen Fehlermeldungen nicht an)

Der Datenbanksyntax ist:
|rufen+vocare,voco,vocavi,vocatum:1*voc-
|warnen+...

Weiss jemand Rat?

Danke
cwriter
 
Ja u.a. auch mit den Variablendeklarationen.

Übrigens ist der Dev-C++ nur eine IDE, sprich ein Editor mit vielen Funktionen. Der eigentliche Compiler ist standardweise der MinGW bzw. GCC.
Schau dir doch mal Code::Blocks an, den kannst du auch mit dem MinGW benutzen.
 
Ja, ich kann sie posten, aber ich dachte, dass sie zu gross wäre:

Code:
#include "stdlib.h"
#include "windows.h"
#include "stdio.h"
#include "conio.h"
#include "time.h"




int main(int argc, char *argv[])
{
    int wortok;
    FILE* f;
    FILE* fa;
    int inhalt;
    char Abfrage[256];  
    char Ruckmeldung[256];
    int Konj;
  f = fopen("Buch.lltv", "r");
  fa=fopen("Speicher","w+");
  if(f==NULL)
  {
  printf("Es wurde kein Woerterbuch gefunden. Bitte lade oder erstelle eines.\n Das Programm kann nicht fortfahren.\n\n");
  _sleep(5000);
  return 0;
  }
  
  inhalt=0;
  wortok=0;
  
  printf("Bitte gib das gewuenschte Wort ein.\n");
  scanf("%s", &Abfrage);
  
  
  
  fseek(f,0,SEEK_SET);
  
  
  inhalt=fgetc(f);
  
  while(wortok==0)
  {                               
  
  do{
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!='+');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  fprintf(fa,"%s+",Abfrage);
  fseek(fa,0,SEEK_SET);
  fgets(Abfrage,256,fa);
  
  if(strcmp(Ruckmeldung, Abfrage)==0)
  {
  printf("\nWort in Datenbank gefunden:\n");
  break;
  }
  else
  {
  do
  {
  inhalt=getc(f);
  }while(inhalt!='|');
  continue;
  }  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  } 
  
  
  do
  {
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!=':');
  
  fseek(fa,0,SEEK_SET);
  
  fgets(Ruckmeldung,256,fa);
  printf("%s",Ruckmeldung);
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  do
  {
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!='*');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);

  if(strcmp(Ruckmeldung,"1*")==0)
  {
  printf(" Verb der A-Konj.\n\n");
  Konj=1;
  }
  if(strcmp(Ruckmeldung,"2*")==0)
  {
  printf(" Verb der E-Konj.\n\n");
  Konj=2;
  }
  if(strcmp(Ruckmeldung,"3*")==0)
  {
  printf(" Verb der I-Konj.\n\n");
  Konj=3;
  }
  if(strcmp(Ruckmeldung,"4*")==0)
  {
  printf(" Verb der Kons.-Konj.\n\n");
  Konj=4;
  }
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  FILE* Stamm;
  Stamm=fopen("Stamm","a+");
  
  do
  {
  inhalt=getc(f);
  fprintf(Stamm,"%c",inhalt);
  }while(inhalt!='-');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);

 
  //fprintf(Stamm,"%s",Ruckmeldung);
  
  
  //Konjugationsdienst
  FILE* fb;
  fb=fopen("Speicher2","w+");
  
  printf("\n\nDer Konjugationsdienst ist nun bereit.\nSyntax-bsp.:\n2S fuer 2. Pers. Singular Aktiv\n\n Dies ist die Omega-Fassung des Programmes. Es stehen nur\n sehr wenige Formen zur Verfuegung.\n\n");
  printf("Form?");
  scanf("%s",&Abfrage);
  
  //--------------------------------------------------------------------------------------------
  
  if(Konj==1)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%so",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sas",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sat",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%samus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%satis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sant",Ruckmeldung);
  }
  }
 
 if(Konj==2)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%seo",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%ses",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%set",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%semus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%setis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sent",Ruckmeldung);
  }
  }
 
 
 if(Konj==3)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sio",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sit",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%simus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sitis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%siunt",Ruckmeldung);
  }
  }
 
 
 
 
 if(Konj==4)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%so",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sit",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%simus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sitis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sunt",Ruckmeldung);
  }
  }
  //--------------------------------------------------------------------------------------------
  
  
  
  printf("\n\nDanke fuer die Benutzung des Programmes.\n\n");
  


  fclose(f);
  fclose(fa);
  fclose(fb);
  fclose(Stamm);
  
  remove("Speicher");
  remove("Speicher2");
  remove("Stamm");
  _sleep(100);
  
  system("PAUSE");
  return 0;
    
}

Übrigens: Code:Blocks habe ich auch installiert, aber wie gesagt: Ich liebe Dev-C++ trotz manchen Problemen wegen der Einfachheit.

cwriter
 
Falls es irgendwie hilft, hier noch die ursprüngliche Fassung: (auch nur eine Datei wird ausgelesen)

Code:
#include "stdlib.h"
#include "windows.h"
#include "stdio.h"
#include "conio.h"
#include "time.h"




int main(int argc, char *argv[])
{

    FILE* f;
    FILE* fa;
    int inhalt;
    char Abfrage[256];  
    char Ruckmeldung[256];
    int Konj;
  f = fopen("Buch.lltv", "r");
  fa=fopen("Speicher","w+");
  if(f==NULL)
  {
  printf("Es wurde kein Woerterbuch gefunden. Bitte lade oder erstelle eines.\n Das Programm kann nicht fortfahren.\n\n");
  _sleep(5000);
  return 0;
  }
  
  printf("Bitte gib das gewuenschte Wort ein.\n");
  scanf("%s", &Abfrage);
  
  fseek(f,0,SEEK_SET);
  inhalt=0;
  
  do
  {
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!='+');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  fprintf(fa,"|%s+",Abfrage);
  fseek(fa,0,SEEK_SET);
  fgets(Abfrage,256,fa);
  
  if(strcmp(Ruckmeldung, Abfrage)==0)
  {
  printf("\nWort in Datenbank gefunden:\n");
  }
  else
  {
  printf("Von diesem Wort weiss ich nichts");
  _sleep(4000);
  return 0;
  }  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  do
  {
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!=':');
  
  fseek(fa,0,SEEK_SET);
  
  fgets(Ruckmeldung,256,fa);
  printf("%s",Ruckmeldung);
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  do
  {
  inhalt=getc(f);
  fprintf(fa,"%c",inhalt);
  }while(inhalt!='*');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);

  if(strcmp(Ruckmeldung,"1*")==0)
  {
  printf(" Verb der A-Konj.\n\n");
  Konj=1;
  }
  if(strcmp(Ruckmeldung,"2*")==0)
  {
  printf(" Verb der E-Konj.\n\n");
  Konj=2;
  }
  if(strcmp(Ruckmeldung,"3*")==0)
  {
  printf(" Verb der I-Konj.\n\n");
  Konj=3;
  }
  if(strcmp(Ruckmeldung,"4*")==0)
  {
  printf(" Verb der Kons.-Konj.\n\n");
  Konj=4;
  }
  
  fclose(fa);
  remove("Speicher");
  fa=fopen("Speicher","w+");
  
  FILE* Stamm;
  Stamm=fopen("Stamm","a+");
  
  do
  {
  inhalt=getc(f);
  fprintf(Stamm,"%c",inhalt);
  }while(inhalt!='-');
  
  fseek(fa,0,SEEK_SET);
  fgets(Ruckmeldung,256,fa);

 
  //fprintf(Stamm,"%s",Ruckmeldung);
  
  
  //Konjugationsdienst
  FILE* fb;
  fb=fopen("Speicher2","w+");
  
  printf("\n\nDer Konjugationsdienst ist nun bereit.\nSyntax-bsp.:\n2S fuer 2. Pers. Singular Aktiv\n\n Dies ist die Omega-Fassung des Programmes. Es stehen nur\n sehr wenige Formen zur Verfuegung.\n\n");
  printf("Form?");
  scanf("%s",&Abfrage);
  
  //--------------------------------------------------------------------------------------------
  
  if(Konj==1)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%so",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sas",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sat",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%samus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%satis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sant",Ruckmeldung);
  }
  }
 
 if(Konj==2)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%seo",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%ses",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%set",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%semus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%setis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sent",Ruckmeldung);
  }
  }
 
 
 if(Konj==3)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sio",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sit",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%simus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sitis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%siunt",Ruckmeldung);
  }
  }
 
 
 
 
 if(Konj==4)
  {
  if(strcmp(Abfrage,"1S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%so",Ruckmeldung);
  }
  if(strcmp(Abfrage,"2S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3S")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sit",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"1P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%simus",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"2P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sitis",Ruckmeldung);
  }
  
  if(strcmp(Abfrage,"3P")==0)
  {
  fseek(Stamm,0,SEEK_SET);
  fgets(Ruckmeldung,256,Stamm);
  printf("\n\n%sunt",Ruckmeldung);
  }
  }
  //--------------------------------------------------------------------------------------------
  
  
  
  printf("\n\nDanke fuer die Benutzung des Programmes.\n\n");
  


  fclose(f);
  fclose(fa);
  fclose(fb);
  fclose(Stamm);
  
  remove("Speicher");
  remove("Speicher2");
  remove("Stamm");

  
  system("PAUSE");
  return 0;
    
}

Danke für die Hilfe!

cwriter
 
Also bei mir stürzt nichts ab, dafür hängt sich das Programm aber immer wieder mal auf. Bin leider noch nicht dazugekommen, es mir genauer anzuschauen, kommt aber noch.
 
Vielen Dank für's Anschauen! Ich bitte dennoch um Entschuldigung, ich habe nicht alles erklärt: Die beiden Wörter, die funktieren (sollten) sind "rufen" und "warnen" (eingeben bei Wortart)
Wie man sieht, funktioniert die 2 version, die ich geposted habe, besser, kennt jedoch nur ein Wort (das da wäre rufen). Die Erste verarbeitet nicht alles richtig...

Danke

cwriter
 
Zum besseren Verständnis hier noch der Dateisyntax:
|rufen+vocare,voco,vocavi,vocatum:1*voc-

Gruss
cwriter
 
Hi.

Warum liest du denn Zeichen aus, schreibst diese in eine extra Datei und liest dann aus der Datei wieder aus? Warum einfach wenn's auch kompilizierter geht, oder wie?

Wenn du etwas in einen String schreiben willst, dann mußt du das nicht erst in eine Datei schreiben und dann wieder auslesen (ist dir das nicht etwas unsinnig vorgekommen?), verwende die Stringfunktionen strcpy, strcat bzw. sprintf.

Um in einem String zu suchen, kannst du die strstr bzw. strchr Funktionen verwenden.

Du solltest generell die Rückgabewerte der Funktionen auf Fehler prüfen (getc gibt EOF bei einem Fehler zurück usw.).

Damit man dein Programm testen kann, solltest du mal eine kleine Vokabeldatei zur Verfügung stellen.

Für die Übersichtlichkeit wäre es besser du würdest deinen Code in irgendeiner Form vernünftig einrücken.

C:
char zeile[256];

while (NULL != fgets(zeile, 256, f)) {
  if (zeile[0] != '|') {
    // unerwartetes Zeichen ...
  } else {
    const char *wort = zeile + 1;
    char *konj, *typ, *stamm;

    konj = strchr(wort, '+');
    if (konj == NULL) continue;

    typ = strchr(konj, ':');
    if (typ == NULL) continue;

    stamm = strchr(typ, '*');
    if (stamm == NULL) continue;

    *konj++ = '\0';
    *typ++ = '\0';
    *stamm++ = '\0';

    printf("Wort: %s\n"
           "Konjugationen: %s\n"
           "Typ: %s\n"
           "Stamm: %s\n",
           wort, konj, typ, stamm);
  }
}
Man könnte auch sscanf oder strtok verwenden um eine ausgelesene Zeile zu verarbeiten. Schau in eine C Referenz was es für Funktionen gibt und welche Argumente bzw. Rückgabewerte erwartet werden.

Gruß
 
Hier die angefangene Datei (als buch.lltv speichern):

Code:
|rufen+vocare,voco,vocavi,vocatum:1*voc-
|kommen+venire,venio,veni,venitum:3*ven-
|warnen+monere,moneo,monui,monitum:2*mon-

Ja, es ist mir ziemlich unsinnig vorgekommen, aber ich wusste nichts von der blossen Existenz dieser Befehle geschweige denn was die Parameter sind. Wieder was gelernt.

fgetc habe ich ja ausgelesen, doch das Problem war, dass nur 1 Wort gefunden wurde.

Was verstehst du unter "vernünftiger Form"? die c-Tags oder was?

Danke für die geleistete Hilfe und das Aufklären über die Funktionen!

cwriter
 
Zurück