Dynamisches Menu basierend auf TXT-Dateien



  • darf ich sowas machen?

    char kategorieen[100][100] = {

    datei=fopen("C:\\TXTDATENBANK\\kategorieen.txt", "r");
    if(datei != NULL) {
    while( (c=fgetc(datei)) != EOF) //oder fgets??
    else {
    nichtfindenoeffnen();
    return EXIT_FAILURE;
    }

    Damit möchte ich gerne eine Liste einlesen welche in char kategorieen abgelegt wird.



  • ups hab vergessen zu formatieren lassen

    char kategorieen[100][100] = {
    
        datei=fopen("C:\\TXTDATENBANK\\kategorieen.txt", "r");
        if(datei != NULL) {
            while( (c=fgetc(datei)) != EOF) //oder fgets??
        else {
            nichtfindenoeffnen();
            return EXIT_FAILURE;     
    }
    


  • hat niemand ne antwort?



  • char kategorieen[100][100] = {
    
        datei=fopen("C:\\TXTDATENBANK\\kategorieen.txt", "r");
        if(datei != NULL) {
            while( (c=fgetc(datei)) != EOF) //oder fgets??
        else {
            nichtfindenoeffnen();
            return EXIT_FAILURE;     
    }
    

    was soll while((c = fgetc(datei)) != EOF) bewirken?

    Du sagst dem Compiler, wenn datei ungleich NULL ist, dann während........usw.

    Meiner Meinung nach bewirkt das rein gar nix.

    Aber ich kann mich auch Irren 😃



  • hmm jo muss nochmal genau drüber schaun aber eigentlich hätte es gehn sollen egal hätte noch ne andere frage welche ich mit höherer priorität einordne und zwar wenn ich die ganzen infos eingelesne habe wie krieg ich die dann in meine char variable.
    oder gibt es da sowas wie ne scanf funktion die das aus der datei eingelesene in eine variable schreibt?



  • in ne "char variable" wirst des nicht reinbekommen das schluesselwort wird hier wohl array sein.

    int i=0;
    char buffer[255];
    
    while((c=fgetc(datei)) != EOF)
    {
    
     buffer[i] = c;
     i++;
    }
    

    irgendwie so inner art sollte des klappen ... allerdings kanns bei dem beispiel zu nem buffer overflow kommen ... also wuerd ich da kontroll mechanismen einbauen ... entweder das nicht mehr als die 255 zeichen gehen oder das ganze dynamisch mittels malloc()/realloc() machen.

    gruessle



  • ok danke vielmals werds gleich austesten



  • ich wollt' nur mal anmerken: wenn du vorhast eine menustruktur in eine textdatei zu stecken, dann würde ich ein strukturiertes format, sowas wie z.b. xml empfehlen



  • xml hat aber wenig mit ansi-c zu tun nicht??



  • kurzefrage schrieb:

    xml hat aber wenig mit ansi-c zu tun nicht??

    ja, aber das ist ja egal. xml ist u.a. ein dateiformat. kannste mit jeder sprache bearbeiten



  • naja ich hab aber keine ahnung von xml dann lass ich besser die finger von



  • imo kannste ja auch pseudo xml machen nur um so ca die struktur zu haben, sowas wie:

    <config>
     <datensatz1>
      <name>blub</name>
      <passwd>irgendwas</passwd>
     </datensatz1>
    </config>
    

    ich glaub das kann man dann recht brauchbar auslesen. und eigentlich ist das schon fast valides XML ... da man dort nicht zwangslaeufig eine DTD braucht.

    oder du gehst den weg des geringsen wiederstandes und machst nen CSV etwa so:

    name:passwd:irgendwas:undsoweiter

    und trennst das ganze dann an dem trennzeichen (hier doppelpunkt)

    gruessle TDO



  • naja das mit dem xml lass ich mal noch ich muss zuerst mal hinbringen das es das eingelesene in ein array schreibt aber irgendwas mach ich so wies aussieht falsch weiss aber leider nicht was.


Anmelden zum Antworten