[C/C++] Minidatenbank

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von krawalldolf, 10. Oktober 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 10. Oktober 2006
    Minidatenbank

    Wie kann ich mit c++ daten aus einer datei aus lesen, die die daten i folgender form enthält?:

    1 # name1 # information1 #....
    2 # name2 # information2 #....
    3 # name3 # information3 #....
    4 # name4 # information4 #....
    ...

    ?(
     

  2. Anzeige
  3. #2 10. Oktober 2006
    AW: Minidatenbank

    Das kannst du mit fscanf machen, solltest du Probleme dabei haben kannst
    du mir eine PN schicken ;)
     
  4. #3 10. Oktober 2006
    AW: Minidatenbank

    Hi,

    deine Funktion, die du suchst, ist 'strtok'. Declariert in string.h.

    Einfach mal die MAN-Page angucken, oder bei google eingeben :)

    Schaut dann so aus:
    Code:
    // file oeffnen
    // jeweils zeilenweise einlesen
    char *ptr;
    ptr = strtok(deine_zeile,"#");
    while (ptr != NULL)
    {
    printf("%s\n",ptr);
    ptr = strtok(NULL,"#");
    }
    Mfg,

    Kolazomai
     
  5. #4 10. Oktober 2006
    AW: Minidatenbank

    Beispielweise willst unter Vcl eine "test.ini" mit diesem Inhalt speichern/einlesen:

    Code:
    [common] 
    EinPfad=c:\lol\ 
    Nochwas=1 
    
    [bla] 
    test=0
     
    [common] 
    EinPfad=c:\lol\ 
    Nochwas=1
    Zum Speichern:
    Code:
    WritePrivateProfileString("common","EinPfad","c:\\lol\\","test.ini"); 
    WritePrivateProfileString("common","Nochwas","1","test.ini");

    Zum Einlesen:
    Code:
    char EinPfad[500]; 
    char Nochwas[500]; 
    char Test[500]; 
    DWORD destSize;
    
    destSize=500; 
    GetPrivateProfileString("common","EinPfad","NULL",EinPfad,destSize,"test.ini"); 
    GetPrivateProfileString("common","Nochwas","NULL",Nochwas,destSize,"test.ini"); 
    GetPrivateProfileString("bla","test","NULL",Test,destSize,"test.ini"); 
    
    // Wenn die Variablen aus der Ini nicht eingelesen werden können, steht nach dem Aufruf der Default-Wert in Test, EinPfad oder Test (In diesem Beispiel "NULL");
     
  6. #5 10. Oktober 2006
    AW: Minidatenbank

    1. Zu viele Variablen fuer so ein kleines Vorhaben -> Kommt JETZT in diesem Programm zwar net drauf an. (jetzt das grosse Aber:) Aber je oefter du dasm achst, desto mehr unnoetiger Speicher wird dir genommen. D.h. erst garnicht so lernen -> Quatsch hoch 3

    2. Viel zu kompliziert

    So, wieso poste ich nochmal ? fgetc ist eigentlich die beste Methode eine Datei einzulesen.
    fscanf geht in diesem Fall zwar auch, kann aber unsicher sein.

    Code:
    #include <stdio.h>
    #define BUF 256
    
    int main(){
    
     int nr,anz;
     char c;
     char buf[20][BUF];
     FILE *dat;
    
     nr=0;anz=0;
    
     if((dat = fopen("blablabla.dat","r")) == NULL)
     {
     printf("Datei nicht vorhanden !\n");
     return 1;
     }
    
     while( (c=fgetc(dat) ) != EOF)
     {
     if[..]
     [..]
     buf[nr][anz]=c;
     anz++;
     }
     return 0;
    }
    
    Ich habe dir den Code nicht vollstaendig geschrieben, wieso nicht ?
    Ich denke, keiner lernt duch Code den er vor die Nase gesetzt kriegt, d.h. Hirn anschalten und dampfen lassen ;)

    EDIT: main vergessen .. ^^
     
  7. #6 11. Oktober 2006
    AW: Minidatenbank

    ok thx @ all damit kann ich was anfangen.

    Ich schreib dann mal mein proggie weiter .... :D


    greez euer krawalldolf :]
     
  8. #7 11. Oktober 2006
    AW: Minidatenbank

    ~closed~

    Mfg,

    Kolazomai
     

  9. Videos zum Thema
Die Seite wird geladen...