"Leichte" Aufgabe in C
-
#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 DateiGrüß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)