"Leichte" Aufgabe in C



  • Ich erstell das in ner freien Minute 🙂 allerdings musst du das dann vorher ins Projekte-Forum verschieben lassen und mir dann 50€ geben 😛

    Also echt.. wenn du echt ne Weile krank warst, dann sag das deinem Lehrer und bitte um ein wenig extra Zeit. Wenn nicht, haste es selbst versaubeutelt und die Note 6 verdient. So, ganz einfach.



  • jaja wisst ihr ob ich Eigeninitiative aufbringe oder nicht??
    Ich sitze hier seit geschlagenen 4 Stunden am Stück und versuche das zu kapieren. Und jemanden mal schnell zu sich in ein Dorf einladen, wo es nichtmal DSL gibt, ist auch nicht so einfach.
    Aber ok. Dann sorry das ich gefragt hab.



  • jaja wisst ihr ob ich Eigeninitiative aufbringe oder nicht??

    Es ist anzunehmen da

    a) Du Dir nicht mal die Zeit genommen hast das richtige Forum aufzusuchen
    b) Du keinerlei Ansatz oder Versuch gepostet hast
    c) keinerlei konkrete Fragen gestellt hast.



  • Stealthy schrieb:

    jaja wisst ihr ob ich Eigeninitiative aufbringe oder nicht??
    Ich sitze hier seit geschlagenen 4 Stunden am Stück und versuche das zu kapieren. Und jemanden mal schnell zu sich in ein Dorf einladen, wo es nichtmal DSL gibt, ist auch nicht so einfach.
    Aber ok. Dann sorry das ich gefragt hab.

    Ok, kein Thema. Dann poste bitte mal, was du in den letzten 4 Stunden so zusammengeschrieben hat.



  • #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(void){
        FILE *f;
        int lauf, wahl;
        while (lauf){
              system("cls");
              printf("Auswahlmenü\n");
              printf("===========\n");
              printf("1. Text eingeben\n");
              printf("2. Datei lesen\n");
              printf("3. Datei löschen\n");
              printf("0. ENDE\n\n");
              printf("Deine Wahl: ");
              scanf("%d",&wahl);
              getchar();
    switch (wahl){
        case 1 : {    
        // Datei öffnen/anlegen
        f = fopen("test.txt", "a"); // Datei-Handle öffnen
        char zeile[80];
        printf("Bitte Text eingeben: ");
        fgets(zeile, 80, stdin);// eine Zeile von stdin holen
        fprintf(f, "%s", zeile);// eine Zeile in Datei schreiben
        fclose(f); // Datei-Handle schließen
    
    case 2 : {
        //Datei auslesen
    f = fopen("test.txt", "r");// Datei-Handle öffnen
    if (f == NULL){
    printf("+++ FEHLER +++\nDatei konnte nicht geöffnet werden!\n\n");
    }else{
    char daten[80];
    system("cls");
    while (fgets(daten, 80, f) != 0){// eine Zeile von stdin holen bis ENDE
          printf("%s", daten);// Zeile ausgeben
          }
          printf("=== Ende Ausgabe ===\n\n");
    fclose(f);// Datei-Handle schließen
    }
    break;
    }
    case 3 : {
          // Datei löschen
          int perr = remove("test.txt");
          if ( perr != 0){
             printf("Es ist ein Fehler beim Löschen aufgetreten (ERROR = %d)\n",perr);
         }
         break;
         }
    case 0 : { exit(0);}
         }
         printf("nochmal? (1/0): ");
         scanf("%d",&lauf);
         }
         return 0;
         }
         }
    


  • Schon besser. Was jetzt noch fehlt, ist eine genaue Beschreibung, was nicht funktioniert, welche Fehler eventuell auftreten usw.

    EDIT: Um bring bitte mal deine Einrückung in Ordnung! Das kann/will so kein Schwein lesen. Wenn ich nicht mal innerhalb von 2-3 Sekunden die schließende geschweifte Klammer zu einer while-Schleife entdecken kann, dann läuft irgendwas schief...



  • Hallo ich hab hier noch son Programm rum fliegen was ich irgendwan mal mit dem Borland Builder gemacht habe vielleicht Hilft dir das ja weiter...

    #include <iostream>
    using namespace std;
    
    #include <fstream>
    #include <vcl.h>
    
    #include "Unit1.h"
    
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    Memo2->ScrollBars = ssBoth;
    
    FileListBox1->Directory = "//Datenbank";
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    FileListBox1->Directory = "//Datenbank";        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::kunden_anlegenClick(TObject *Sender)
    {
    
    String kunden_name;
    String neuer_name;
    
    neuer_name = Memo2->Text;
    
    kunden_name = Edit4->Text;
    
    ofstream neuer_kunde (kunden_name.c_str()  );
             neuer_kunde << neuer_name;
    
    neuer_kunde.close();
    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    String kunden_name;
    String neuer_name;
    
    String kunden_name_anlegen;
    
    bool datei_pruefeung;
    
    kunden_name_anlegen = Edit4->Text;
    datei_pruefeung = FileExists (kunden_name_anlegen);
    
            if (datei_pruefeung==true)
            {
             MessageBox(0,"Datei existiert bereits, um einen bereits bestehenden Kunden"
             "zu ändern benutzen sie den ''Kunden bearbeiten'' Button."   "","Fehler !!",0);
            }
    
            if (Edit4->Text == "")
           {
               MessageBox(0,"Wenn sie einen neuen Kunden anlegen wollen,"
               "müssen sie in das Feld ''Kunden Name eingeben'' einen "
               "beliebigen Kunde Namen eingeben."" ","Fehler !!",0);
    
           }
    
       else if (datei_pruefeung==false )
       {
         neuer_name = Memo2->Text;
         kunden_name = Edit4->Text;
    
         ofstream neuer_kunde (kunden_name.c_str() );
    
              neuer_kunde << neuer_name;
              neuer_kunde.close();
    
              MessageBox(0,"Neuer Kunde wurde angelegt","Kunden anlegen",0);
              FileListBox1->Directory = "//Datenbank";  //datenbank aktualisieren
    
         }
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    int falsche_eingabe;
    
    int anderung;
    String kunde;
    String kunden_aenderung;
    
            if (Edit4->Text=="")
            {
              MessageBox ( NULL, "Das Feld ''Neuer Kunden Name'' muss ausgefüllt werden", "Hinweis !",0);
            }
    
    else
    {
    
    anderung = MessageBox ( NULL, "Veränderungen wirklich übernehmen ?", "Warnung !",4);
    
              if (anderung == IDYES)
              {
                      String kunden_name;
                      String neuer_name;
    
                       neuer_name = Memo2->Text;
                       kunden_name = Edit4->Text;
    
                       ofstream neuer_kunde (kunden_name.c_str()  );
                       neuer_kunde << neuer_name;
    
                        neuer_kunde.close();
                        MessageBox ( NULL, "Veränderungen wurde übernommen", "Veränderungen wurde übernommen",0);
                        FileListBox1->Directory = "//Datenbank";  //datenbank aktualisieren
              }
    
              if (anderung == IDNO)
              {
                MessageBox ( NULL, "Veränderungen wurden verworfen", "Veränderung verworfen",0);
              }
    }
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FileListBox1Change(TObject *Sender)
    {
    String datei;
    
            if ( FileListBox1->ItemIndex > -1 )
            {
                    Edit4->Text = FileListBox1->Items->Strings[FileListBox1->ItemIndex] ;
                    datei = Edit4->Text;
    
                    Memo2->Lines->LoadFromFile(datei.c_str() );
    
            }
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    bool datei_pruefung;
    int loesch_abfrage;
    
    String zu_loeschende_datei;
    
    zu_loeschende_datei = Edit4->Text;
    
    datei_pruefung = FileExists (zu_loeschende_datei);
    
            if (datei_pruefung==true)
            {
                loesch_abfrage = MessageBox(NULL,"Wollen sie die Datei wirklich löschen ?","Warnung !",4);
            }
    
            if (loesch_abfrage==IDYES)
            {
               remove(zu_loeschende_datei.c_str() );
               MessageBox(0,"Kunde wurde erfolgreich aus der Datenbank entfernt !","Hinweis !",0);
               FileListBox1->Directory = "//Datenbank";  //datenbank aktualisieren
            }
    
            else
            {
            MessageBox(0,"Lösch Aktion wurde abgebrochen !","Hinweis !",0);
            }
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Memo2Change(TObject *Sender)
    {
    
    }
    //---------------------------------------------------------------------------
    


  • void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    FileListBox1->Directory = "//Datenbank";
    }

    Der Teil muss noch raus weil sonst kann man die Kunden Datein nicht aus der Liste auswählen.



  • Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum C# und .NET in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ok hier das was ich noch einbauen müsste:

    - Größe der Datei ermitteln anhand der Zeichen
    - am Ende der Datei letzte Öffnung angeben
    - Funktion zur Umbenennung der Datei

    Grüße



  • Ok hab eine sach gelöst muss nur noch das machen:
    - Größe der Datei ermitteln anhand der Zeichen
    - am Ende der Datei letzte Öffnung angeben



  • Bisschen bemühen und die Dateigrößenermittlung ist gleich runtergeschrieben 😉

    Tipp: bei IBM-PC: 1 Zeichen = 8 Bit = 1 Byte = 1 Oktett (aus Wikipedia "Byte")

    Dann z.B. per while(datei.getline(str) != eof) { größe += str.length(); } die Länge jeder Zeile addieren. Zum Schluss kommt deine Größe in Byte raus, da ein Byte ein Zeichen enthält 😉



  • rolf höre nicht auf diesen troll



  • Dateigröße: man: fseek
    Zugriffsdatum: man: stat(2)


Anmelden zum Antworten