tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
13
ZUGRIFFE
6653
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DaMan DaMan ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Moin Leute!

    Ich bin noch relativ neu auf dem C++ gebiet aber jeder hat ja mal klein angefangen

    Also mein Problem:

    Ich habe ein main funktion der einer Write Funktion 3 werte übergibt.
    Die write funktion öffnet das file.
    Wie bekomme ich die 3 werte in das file geschrieben, dass ich später durch eingabe einer der 3 werte die anderen beiden werte aus der datei auslesen kann?

    Bsp.:
    Bankprogramm

    Ein Benutzer wird mit UserID, PIN und Kontostand in mein File geschrieben

    Ich möchte auf so ein Geldabheb-Gerät folgendes einrichten:
    Benutzer gibt seine ID ein... daraufhin muss das programm die dazugehörige pin aus dem file auslesen und danach überprüfen ob der benutzer den richtigen pin eingegeben hat.
    wenn das der fall is, soll er die möglichkeit haben kontostand zu betrachten,
    Geld abzuheben oder Geld einzuzahlen.
    Wenn er Geld einzahlt oder abhebt muss der alte kontostand in dem file natürlich mit dem neuen überschrieben werden und die datei wieder abgespeichert werden.

    Ich bekomme das ja alles schon hin wenn ich UserID und PIN im programmtext angebe, der kontostand wird schon in nem file gespeichert. Aber ich weiß nicht wie ich alles 3 in das file bekomme und das dann jeweils der richtige pin und der richtige kontostand zur passenden ID ausgelesen wird.

    Ich hoffe jemand kann mir helfen

    DaMan
     

  2. #2
    Avatar von jokey2
    jokey2 jokey2 ist offline Mitglied Smaragd
    Registriert seit
    Nov 2004
    Beiträge
    1.235
    Die Frage gab's hier schon öfter, also
     

  3. #3
    DaMan DaMan ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Hmmm,

    also ich find nix das ich benutzen kann um mein problem zu lösen

    Hast vllt nen Lnk für mich zum richtige Thema.. weiß net so wirklich wonach ich suchen soll

    DaMan
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Was meinst du eigentlich damit das die write Funktion die Datei öffnet?


    mfg
    umbrasaxum
     

  5. #5
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Hier ein Beispiel zu fwrite aus der MSDN:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    #include <stdio.h>
     
    int main( void )
    {
       FILE *stream;
       char list[30];
       int  i, numread, numwritten;
     
       /* Open file in text mode: */
       if( (stream = fopen( "fread.out", "w+t" )) != NULL )
       {
          for ( i = 0; i < 25; i++ )
             list[i] = (char)('z' - i);
          /* Write 25 characters to stream */
          numwritten = fwrite( list, sizeof( char ), 25, stream );
          printf( "Wrote %d items\n", numwritten );
          fclose( stream );
     
       }
       else
          printf( "Problem opening the file\n" );
     
       if( (stream = fopen( "fread.out", "r+t" )) != NULL )
       {
          /* Attempt to read in 25 characters */
          numread = fread( list, sizeof( char ), 25, stream );
          printf( "Number of items read = %d\n", numread );
          printf( "Contents of buffer = %.25s\n", list );
          fclose( stream );
       }
       else
          printf( "File could not be opened\n" );
    }


    mfg
    umbrasaxum
     

  6. #6
    DaMan DaMan ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Naja, bevor die funktion in die datie schreiben kann muss sie sie ja öffnen
    FILE *f;
    f=fopen("e:\\Ordner\\datei.dat","wb");
    Mein Problem ist ja das ich nicht weiß wie ich die 3 werte schreiben / lesen muss
    damit ich sie nachher zusammen verwenden kann.

    z.b. reinschreiben
    userid = 123
    pass = 444
    konto=1400

    wenn ich dann der read funtktion userid(also 123) übergebe
    will ich da reinschreiben können
    return(pass);
    und dann soll er mir die 444 returnen.
    Geändert von DaMan (24.05.05 um 11:54 Uhr)
     

  7. #7
    CrazyHornet CrazyHornet ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    24
    Hier mal ein ganz simples Beispiel keine Ahnung ob dir das eventuell weiterhilft:

    Code :
    1
    2
    3
    4
    5
    
    FILE* datei = fopen("datei.dat", "w"); //Datei öffnen/erstellen mit Schreibberechtigung
    char * wht; //String "Variable" festlegen
    sprintf( wht, "%d,%d,%d\n", wert1,wert2,wert3);// die 3Werte werden in eine Zeile eingetragen;neuer Eintrag,neue Zeile
    fwrite(wht, sizeof(char), strlen(wht)+1, datei); //Schreiben des Strings in die Datei
    fclose(datei); // Schließen der Datei.
    Geändert von CrazyHornet (24.05.05 um 11:58 Uhr)
     

  8. #8
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Ich hab doch oben schon ein Beispiel gegeben.

    Ich verstehe nciht ganz wo das Problem liegt.
    Gehts dir nciht so sehr um das reinschreiben sondern darum das dir die passenden Werte rausgesucht werden?!


    mfg
    umbrasaxum
     

  9. #9
    CrazyHornet CrazyHornet ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    24
    Hab das nicht gesehen wollts schon 5Min davor schreiben aber musste dann kurz weg vom PC Zivileben halt :P

    Zu der Verarbeitung der Daten:
    Eventuell wird das Thema hier so diskutiert wie du es haben willst:
    http://www.tutorials.de/tutorials205994.html
     

  10. #10
    DaMan DaMan ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Mhh ja das geht schon alles in die Richtige richtung, aber net so wie ichs brauche

    Ich möchte wissen wie ich die werte in die datei schreiben muss damit ich nachher beim wieder auslesen alle werte wieder bekomme

    Write:
    user: 123 pin: 4444 konto:1000

    Read übergebe ich die 123
    und bei
    return(pin)
    soll Read mit 4444 rausgeben
    und bei
    return(konto)
    soll Read mit 1000 rausgeben

    Ich hoffe es ist einigermaßen verständlich
     

  11. #11
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Ich denke fprintf und fscanf sind eher das was du suchst!


    mfg
    umbrasaxum
     

  12. #12
    CrazyHornet CrazyHornet ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    24
    Oder du machst es so wie bei meinem Code-Beispiel geschrieben

    nur schreibst du

    sprintf( wht, "User: %d Pin: %d Konto: %d \n", wert1,wert2,wert3);

    damit Hast du ne text-datei die folgendermaßen aufgebaut ist:

    User: 1 Pin: 1234 Konto: 12
    User: 2 Pin: 4321 Konto: 21
    ....

    Dann müsstest du nur nach dem String
    "User: 1" suchen und dann kannst du die gesamte Zeile auslesen so wie es unter dem oben genannten Link erwähnt wird bzw. auf weiterführende Themen verwiesen wird
     

  13. #13
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin

    Zum auslesen
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    int main(int argc, char* argv[])
    {
        FILE *datei = fopen("test.txt", "r");
     
        int id;
        int pin;
        int konto;
     
        fscanf(datei, "%d %d %d\n", &id, &pin, &konto);
        
        printf("ID: %d Pin: %d Konto: %d", id, pin, konto);
     
        fclose(datei);
     
        return 0;
    }
    Zum reinschreiben
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    int main(int argc, char* argv[])
    {
        FILE *datei = fopen("test.txt", "w");
     
        int id = 123;
        int pin = 1234;
        int konto = 1000;
     
        fprintf(datei, "%d %d %d\n", id, pin, konto);
     
        fclose(datei);
     
        return 0;
    }

    Wenn du es noch einfacher willst, musst du ne .ini Datei verwenden.
    Edit: Wnen ich es mir richtig überlege kommst du um ne .ini Datei nciht drum rum, wenn du es so einfach haben willst. Ansonsten müsstest du immer die ganze Datei durchsuchen.


    mfg
    umbrasaxum
    Geändert von Tobias K. (24.05.05 um 12:23 Uhr)
     

  14. #14
    DaMan DaMan ist offline Rookie
    Registriert seit
    May 2005
    Beiträge
    5
    Hi!

    Das sieht schon sehr gut aus

    bin jetzt erstmal mittagessen und danach teste ich das mal aus

    danke euch schon mal sehr
     

Ähnliche Themen

  1. fwrite Problem
    Von MS47475 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 28.01.08, 12:09
  2. Umbrüche mit fwrite(); ?
    Von Acriss im Forum PHP
    Antworten: 15
    Letzter Beitrag: 23.08.07, 11:56
  3. fwrite problem
    Von Tualex im Forum PHP
    Antworten: 5
    Letzter Beitrag: 10.10.06, 17:10
  4. fwrite und chown
    Von Sebigf im Forum PHP
    Antworten: 21
    Letzter Beitrag: 09.06.06, 09:45
  5. fwrite problem
    Von Eaden im Forum PHP
    Antworten: 3
    Letzter Beitrag: 15.12.04, 00:41