Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Dringend Eine Such-Searchmaschiene mit c++ Hilfe mir Bitteee

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.03.2005, 02:03 Uhr
cplus2group



Die Quellcode ist /*

C++:

#include <iostream>
using namespace std;
#include <stdlib.h>
#include <fstream>
#include <string>



struct search{
struct search *danach;
char gruppe[200];
int gleichgleich;
int name;
} ;
enum zustand {imGruppe,imGleichgleich,imNamen};

struct search *loadgruppe(ifstream &data);
struct search *loaderhaltene(ifstream &data);
struct search *searcherhaltene(struct search *das, char *zeichnung);
struct search *suchediese(struct search *das, char *diese);


int main(){
char dataname[200], befehl[200];
struct search *das=NULL, *now;



ifstream data;

cout<<"Welche Datei soll geöffnet werden?"<<endl;
cin.getline(dataname,200,'\n');
data.open(dataname);

if(!data){
cout<<"Datei"<<dataname<<" nicht lesbar."<<endl;
return 0;
}

das=loadgruppe(data);

for(;;){
cout<<"Bitte wählen Sie:"<<endl<<
" n - Gruppe"<<endl<<
" z - soll enthalten"<<endl<<
" * - Programm beenden"<<endl;
cin.getline(befehl,200,'\n');


switch(befehl[0]){
case 'n':
cout<<"Geben Sie die Gruppe ein!"<<endl;
cin.getline(befehl,200,'\n');
now=searcherhaltene(das,befehl);
if (now!=NULL)
cout<<"Die Gruppe"<<now->gleichgleich<<" enthält."<<endl;
else cout<<"Die Gruppe ist nicht bekannt!"<<endl;
break;
case 'z':
cout<<"Was soll enthalten einer Gruppe?"<<endl;
cin.getline(befehl,200,'\n');
now=suchediese(das,befehl);
if (now!=NULL)
cout<<"Die Gruppe "<<now->gruppe<<now->name<<" enthaelt."<<endl;
else cout<<"Zu diesem Daten gibt es keinen Eintrag!"<<endl;

break;
case '*':
return 0;
default:
cout<<"Befehl "<<befehl<<" verstehe nicht"<<endl;
break;
}

}
{
int x;
cin >> x;
}

}

struct search *loadgruppe(ifstream &data){
struct search *das=NULL, *now, *neu;

while(!data.eof()){
neu=loaderhaltene(data);
if (neu!=NULL){
if (das==NULL) das=neu;
else now->danach=neu;
now=neu;
}
}
return das;
}


struct search *loaderhaltene(ifstream &data){
struct search *searchdas;
char puffer[200],zeichen;
int zaehler;
enum zustand zustand;

searchdas=new struct search;
searchdas->danach=NULL;

zustand=imGruppe;
zaehler=0;
for (;;)
{
data.get(zeichen);
if (data.eof()) return NULL;

switch(zeichen){
case '=':
puffer[zaehler]='\0';
zaehler=0;
strcmp(searchdas->gruppe,puffer);
zustand=imGleichgleich;
break;

case ' ':
if (zustand!=imGruppe){
puffer[zaehler]='\0';
zaehler=0;
searchdas->gleichgleich=atol(puffer);
return searchdas;
zustand=imNamen;}
return 0;

case '\n': if (zustand!=imNamen)
puffer[zaehler]='\0';
zaehler=0;
searchdas->name=atol(puffer);
return searchdas;
break;
default:
puffer[zaehler]=zeichen;
zaehler++;
break;}}}


struct search *searcherhaltene(struct search *das,char *zeichnung){
while(das!=NULL){
if(!strcoll(das->gruppe,zeichnung)) return das;
das=das->danach;
}
return NULL;
}

struct search *suchediese(struct search *das, char *diese){
int suchgleichgleich, suchname,i;
char *start;

for (i=0;diese[i]==' ';i++);
start=diese;
for (;diese[i]!='=='&& diese[i]!='\0';i++);
if(diese[i]=='\0'){
cout << "Dieses kann ich nicht lesen:"<<diese<< endl;
return NULL;
}

diese[i]='\0';
suchgleichgleich=atol(start);
i++;
start=diese+i;
suchname=atol(start);

while(das!=NULL){
if (das->gleichgleich == suchgleichgleich && das->name== suchname) return das;
das=das->danach;
}
return NULL;
}



*/

Hilfe Bitteeee Bitteeee


[man]
mit besten Grüssen
cplus2group
[/man]
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.03.2005, 09:01 Uhr
(un)wissender
Niveauwart


Und? Was geht nicht, wo liegt das Problem? Wir sind keine Hellseher.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.03.2005, 09:10 Uhr
typecast
aka loddab
(Operator)


Den Thread hab ich schon mal gesehen ->
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: