title image


Smiley zeilen auslesen und löschen in einer txt
Moin,



ich hole mal etwas aus, damit man es etwas besser versteht.

Und zwar soll ich ein Programm schreiben welches ich durch ein simples Menü durch Buchstabeneingabe bedienen kann.

Das sieht beispielsweise so aus:

[code]

cout<<"\n*******Dateiverwaltung*******";

cout<<"\nKundendaten ................k";

cout<<"\nPersonaldaten ..............p";

cout<<"\nEnde .......................q";

cout<<"\nIhre Wahl = ";

[/code]

mit switch und case wird es ausgewählt.



In dem Programm geht es daraus eine datei mit dem Namen "kunde.txt" und "personal.txt" anzulegen. In diese Dateien soll man dann einen Datensatz eingeben können der auch "PersNr", "name" und "vorname" besteht. Dieser Eintrag wird dann in der Datei gespeichert.

Ich kann auch gucken ob ein Eintrag in der Datei vorhanden ist und die gesamte Datei ausgeben lassen.

Folgendes habe ich definiert:

class CPerson -> Basisklasse CPerson

class CPersonal:public CPerson -> abgeleitete Klasse CPerson

class CKunde : public CPerson -> abgeleitete Klasse CKunde



void CPerson::eingeben() -> Methode der Basisklasse CPerson

void CPerson::ausgeben() -> Methode der Basisklasse CPerson

void CPerson::suchen() -> Methode der Basisklasse CPerson



CPersonal::CPersonal() -> Methode der abgeleiteten Klasse CPersonal

void CPersonal::eingeben() -> Methode der abgeleiteten Klasse CPersonal

void CPersonal::speichern() -> Methode der abgeleiteten Klasse CPersonal



CKunde:CKunde -> Methode der abgeleiteten Klasse CKunde

void CKunde::eingeben() -> Methode der abgeleiteten Klasse CKunde

void CKunde::speichern() -> Methode der abgeleiteten Klasse CKunde



Danach kommt dann das MEnü mit der Auswahl bzw dem Aufruf der einzelnen Klassen.



So jetzt kommt der Auszug aus meinem Programm:



Methoden der Basisklasse CPerson:

[code]

void CPerson::eingeben()

{

cout<<"Vorname = ";

cin>>Vorname;

cout<<"Nachname = ";

cin>>Nachname;

}



void CPerson::ausgeben()

{

char zeichen;

ifstream datei;

//system("clear");

datei.open(Dateiname);

if(!datei)

cout<<"Fehler";

else

{

cout<<"Personaldatei\n";

while(!datei.eof())

{

zeichen=datei.get();

if(zeichen=='#')

cout<
else

cout.put(zeichen);

}

datei.close();

}

//getch();

}



void CPerson::suchen()

{

char suchname[30],zeichenkette[30];

int i=0;

bool vorhanden=false;

ifstream datei;

cout<<"Suchname = ";

cin>>suchname;

datei.open(Dateiname);

while(!datei.eof())

{

zeichenkette[i]=datei.get();

if (zeichenkette[i]!=' ')

i++;

else

{

zeichenkette[i]='\0';

if(strcmp(zeichenkette,suchname)==0)

vorhanden=true;

i=0;

}

}

datei.close();

if(vorhanden==true)

cout<
else

cout<
//getch();

}

[/code]



Methoden der abgeleiteten Klasse CPersonal

[/code]

CPersonal::CPersonal()

{

strcpy(Dateiname,"personal.txt");

}



void CPersonal::eingeben()

{

cout<<"Personaldaten \n";

CPerson::eingeben();

cout<<"Personalnummer = ";

cin>>PersNr;

CPersonal::speichern();

}



void CPersonal::speichern()

{

ofstream datei;

datei.open(Dateiname,ios::app);

if(!datei)

cout<<"\nDatei kann nicht geoeffnet werden";

else

datei<< PersNr <<" "<
datei.close();

}

[/code]



So hoffe ist nachvollziehbar.

Nun soll das Programm aber noch mehr können als die gesamte Datei ausgeben, neue Einträge anhängen und gucken ob ein bestimmter Eintrag vorhanden ist.



Die Dateien die angelegt wurden sollen sortiert werden, man soll einzelne Zeilen bzw Einträge darauf löschen können und einzelne Einträge ändern können.



Ich habe aber absolut keine Ahnung wie ich das machen soll. Den ersten Teil hatten wir in der Schule zusammen gemacht und der Rest sollte alleine erledigt werden.



Vielleicht kann mir ja jemand helfen oder hat Ideen dazu.

Wäre prima.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: