Zum Inhalt springen

Woodstock

Mitglieder
  • Gesamte Inhalte

    1.677
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Woodstock

  1. Schau mal in das Forum 'IT Allg. /Literaturtipps IT-Berufe /BWL', oder frag da nach, dort wirst Du sicher eher fündig als hier... Bine
  2. So wie Du es Dir vorstellst, geht es aber leider nicht. Ich untersuche das Ausgelesene aus der Datei auf jedes Suchwort, und lese dann weiter aus der Datei aus. Nehmen wir an, unsere gesuchten Begriffe wären 'bla', 'Hallo' und 'Danke'. So, er öffnet nun die erste Datei, und fängt an, Wort für Wort auszulesen. Jetzt stell Dir vor Er ließt das Wort 'bla' aus, untersucht es daraufhin hin ob es mit einem der Suchbegriffe übereinstimmt. Und wie schön, so ist es, also gibt er aus, dass er den Suchbegriff gefunden. Desweiteren liest er das irgendwann das Wort 'Hallo' aus, und sagt Dir nun wieder dass es mit einem der Suchbegriffe übereinstimmt. Liest er jetzt noch einmal das Wort 'bla' aus, so soll er es mir aber nicht nocheinmal angeben, das er es gefunden hat, denn für diese Datei weiß ich es ja schon. So wie Du Dir das vorstellst, müßte ich ersteinmal alle Dateien nach einem Suchbegriff untersuchen, und dann wieder alle Dateien auf den nächsten. Bine
  3. Nun, das Problem ist halt, das solange es um ein und dasselbe Suchwort geht, 'z' ja auch nur einmal 1 werden soll. Nur wenn es um den nächten Suchbegriff geht, z wieder den Wert '1' annehmen soll. Bine PS: Danke aber schon mal!
  4. captain haddock: bitte einmal in den Thread 'Ausgabe nur einmal schaun'! Danke Bine
  5. Ja, genau um 'z' geht es ja. Ich habe diese Variable in mein Programm eingefügt, weil ich über sie gerne regeln würde, das mir das Programm nur einmal ausgibt einen bestimmten Suchbegriff gefunden zu haben, auch wenn er ihn in ein und derseben Datei mehrmals gefunden hat. Nehmen wir also an, ich untersuche die Datei 'a', auf die Suchbegriffe '1' + '2'. Wird '1' jetzt zwei Mal in der Datei gefunden, soll aber trotzdem nur einmal angegeben werden, das er '1' gefunden hat. Soweit so gut, klappt nur nicht so. Das Problem welches ich habe ist, er gibt mir nur noch einmal an '1' gefunden zu haben, wenn jedoch auch '2' in der Datei 'a' vorkommt, so erfahre ich das nicht. Mein Quelltext an einem Stück sieht so aus: #include "Sabine(1).h" FILE *fz, *fy; char buffer2[1001]={NULL}, buffer3[1001]={NULL}; char Datei[100][1000], Liste[2][150], Eingabe[50][101]; char Ausgelesenes[128]; int Gefunden; int j = 0, k = 0, c, b, d, i = 0, z = 0; int scnt = 0, scnt2 = 0, pos = 0; void main() { cout << "Mit diesem Programm können Sie eine " "beliebige Datei auf einen Suchbegriff hin \nuntersuchen!" " Wollen Sie keine weitere Datei mehr durchsuchen\nbitte " "'---' eingeben!\n\n"; cout << "Bitte geben Sie die List-Datei mit Pfad an: "; cin >> Liste[scnt]; fy = fopen (Liste[scnt], "r"); if (fy == NULL) cout << "Feler - List-Datei nicht gefunden!\n"; else { do { cout << "Bitte das " << scnt2+1 << ". gesuchte Wort eingeben: "; cin >> buffer2; _strlwr(buffer2); strcpy(Eingabe[scnt2], buffer2); scnt2++; } while (strcmp(buffer2, "---")); while ((fgets (buffer3, 1000, fy))!= 0) { _strlwr(buffer3); strcpy(Datei[scnt], buffer3); b=0; do { if (Datei[scnt] == '\n') { Datei[scnt] = '\0'; } b++; } while(Datei[scnt] != 0); scnt++; z=0; Gefunden = 2; fz = fopen (Datei[j], "r"); if (fz==NULL) cout << "Fehler - Datei nicht gefunden!\n"; else { c = 2; while (c != EOF) { c = fgetc (fz); if ((c<'A'||c>'z')||(c>'Z'&&c<'a')||(c==EOF)) { Ausgelesenes[pos] = '\0'; _strlwr(Ausgelesenes); k = 0; while (k < scnt2-1) { if(strstr (Ausgelesenes, Eingabe[k])) { Gefunden = 1; z++; } else { Gefunden = 0; } pos = 0; if (z == 1) { if (Gefunden == 1) cout << Eingabe[k] << " in Datei " << Datei[j] << " gefunden!\n"; } k++; } // while } // if Ausgelesenes[pos] = c; pos++; } // while } // else j++; } // while } // else fclose (fz); fclose (fy); } // main Also, es geht mir darum das irgendwie zu regeln, das wenn er die Datei 'a' untersucht, er mir '1' + '2' als gefunden angibt, aber nur einmal, auch wenn einer der beiden mehrmals darin vorkommt. Und das irgendwie über die Variable 'z'! Zu der Suchmaschine kannich nur soviel sagen, dass ich mir das nicht aussuchen kann. Es ist ein Projekt, was ich machen muss. Bine
  6. Das Problem bei den C-Strings ist bei mir nur, das ich damit noch gar keine Erfahrungen gemacht habe, kommen in dem Buch aus dem ich lerne erst viel später, und ich damit deswegen gar nicht arbeiten kann. Steige da einfach nicht durch, wie ich was zu machen habe. Dynamisches Array wollte ich am Anfang machen, aber mein Chef sagt, ich soll es ohne machen. Bine
  7. Also, ich will dem User die Möglichkeit geben mehrere Suchbegriffe einzugeben, und ihm auch die Möglichkeit geben, das wenn er keinen weiteren Suchbegriff mehr eingeben möchte, er einfach nur 'Enter' drücken muss. Ist das auch das was Du meinst? Wenn ja, wie soll ich das mit scanf machen? Bine
  8. Hi, also, ich habe folgendes Problem (es handelt sich natürlich immer noch um das eine Programm um das es schon die ganze Zeit geht) : Ich lese aus einer Datei, soweit so gut. Stößt er jetzt nicht auf einen Buchstaben, hängt er an das Gelesene ein Nullzeichen an, und fängt an das Wort zu untersuchen, nämlich ob es mit einem der Suchbegriffe übereinstimmt. Sieht im Moment so aus: while (k < scnt2-1) { if(strstr (Ausgelesenes, Eingabe[k])) Gefunden = 1; else { Gefunden = 0; } pos = 0; if (Gefunden == 1) cout << Eingabe[k] << " in Datei " << Datei[j] << " gefunden!\n"; } k++; } Nun habe ich das Problem das ich nicht möchte, das wenn der gesuchte Begriff zwei Mal in der Datei vorkommt, das er mir das auch zweimal sagt, einmal reicht mir. Habe es dann so versucht: while (k < scnt2-1) { if(strstr (Ausgelesenes, Eingabe[k])) { Gefunden = 1; z++; } else { Gefunden = 0; } pos = 0; if (z == 1) { if (Gefunden == 1) cout << Eingabe[k] << " in Datei " << Datei[j] << " gefunden!\n"; } k++; } Dabei habe ich das Problem, das er mir dann zwar bei ersten gesuchten Begriff es nur einmal anzeigt, wie ich es auch will , kommt nur leider in der selben Datei auch noch ein zweiter oder sogar dritter der gesuchten Begriffe drin vor, so wird dies nicht mehr angezeigt. Wie kann ich das ändern :confused: ? Bine
  9. Moin, moin! Kann mir einer sagen wie die Bedingung einer 'do while' Schleife sein muss, in der etwas in eine char Array eingelesen wird, damit sie abbricht, wenn nur 'Enter' gedrückt wurde? Bine
  10. Ich habe es soweit heute geschafft. Bin einen Schritt weiter, danke Euch! Bine
  11. Das fclose() kommt bei mir ganz unten, ist hier nur nicht mit aufgeführt, weil ich noch einiges mehr drin habe in dem Programm, was für mein Problem aber nicht interessant ist, da dieses vorher auftritt. Bine PS: Aber wenigstens weißt Du das ich ein Vogel bin, und nicht z.B. das Festival...
  12. Wie kann ich das checken? Wenn ich mir die einzelnen Arrays ausgeben lassen, in die ich mit fgets etwas gespeichert habe, dann gibt er mir genau die Zeilen die in meiner List-Datei stehen. Soll ich also extra ein Nullzeichen anfügen? Aber warum klappt es dann wenn ich nur eine Datei in der Listdatei angeben? Fragen über Fragen und ich blicke schon fast nicht mehr durch... Bine
  13. Gut, also das mit dem auslesen klappt ja jetzt, aber wenn ich mehr als eine Datei (in mehr als einer Zeiler) in der List-Datei angebe, kann ich die Dateien nicht mehr öffnen. Woran liegt das, denn die Position ist genau richtig. Bine
  14. Ich habe keine Angst dass Du mich nicht findest, hast Du bisher ja immer geschafft. Ich bin wohl einfach zu dumm dazu. Bine
  15. Hi, ich schon wieder. Ich komme einfach nicht weiter. Sieht an dem Punkt wo ich nicht weiterkomme so aus: cout << "Bitte geben Sie die List-Datei mit Pfad an: "; cin >> Liste[scnt]; fy = fopen (Liste[scnt], "r"); if (fy == NULL) cout << "Feler - List-Datei nicht gefunden!\n"; else { do { fgets (buffer3, 1000, fy); _strlwr(buffer3); strcpy(Datei[scnt], buffer3); scnt++; } while ((fgets (buffer3, 1000, fy))!= 0); Warum liest er in Datei immer nur jede zweite Zeile aus der Datei ein? Bine
  16. Hat es Dir jetzt die Sprache verschlagen?
  17. Du hast es geändert... Aber Du kannst mir helfen mein Netzwerk aufzubauen!
  18. Na, weil Du gesagt hast, 'dann kann ER das und das machen' usw! Aber tut mir leid, bin kein Mann!
  19. Danke, auch wenn ich kein 'er' bin!
  20. Es muss an meinem Quelltext liegen, denn wenn ich die List-Datei dahin kürze das nur noch ein eintrag in Ihr ist, dann kann er die Datei öffnen, nur warum? Also bisher sieht es so aus: #include "Sabine(1).h" void main() { FILE *fz, *fy; char buffer2[1001]={NULL}, buffer3[1001]={NULL}; char Datei[100][1000], Liste[2][150], Eingabe[50][101]; char Ausgelesenes[128]; int Gefunden; int j = 0, k = 0, c, a, b, i = 0; int scnt = 0, scnt2 = 0, pos = 0; cout << "Mit diesem Programm können Sie eine " "beliebige Datei auf einen Suchbegriff hin \nuntersuchen!" " Wollen Sie keine weitere Datei mehr durchsuchen\nbitte " "'---' eingeben!\n\n"; cout << "Bitte geben Sie die List-Datei mit Pfad an: "; cin >> Liste[scnt]; fy = fopen (Liste[scnt], "r"); if (fy == NULL) cout << "Feler - List-Datei nicht gefunden!\n"; else { do { fgets (buffer3, 1000, fy); _strlwr(buffer3); strcpy(Datei[scnt], buffer3); scnt++; } while ((fgets (buffer3, 1000, fy))!= 0); for (j=0;j<scnt;j++) { Gefunden = 2; fz = fopen (Datei[j], "r"); if (fz==NULL) cout << "Fehler - Datei nicht gefunden!\n"; else { /* Hier findet die Überprügung statt */ } // else } // for } // else } // main Gehe ich nicht richtig in der Annahme, dass er in der for Schleife zuerst die Datei 'Datei[0]' öffnet (sie ist auf jeden Fall da wo sie sein soll), dann überprüft, und danach dann das gleiche mit der Datei 'Datei[1]' tut usw.? Bine
  21. Ok, danke! Ich denke ich habe das soweit verstanden. Wenn ich doch noch eine Frage haben sollte, melde ich mich noch mal. Bine
  22. Soweit verstanden, nur wie verbinde ich die einzelnen Rechner mit der Server? Weil gibt ja nur einen Netzwerkkarteneingang pro Karte. Gibt da doch zwei Möglichkeiten, oder? Bine
  23. Daran habe ich gedacht, ja, wenn ich aber die Adresse als String durch fegts einlesen lassen, brauche ich diese nicht. Die Datei ist genau an der Stelle die ich in der Liste-Datei angegeben habe. Hmm, komisch komisch! Mal schaun... Bine
  24. Hallo, ich habe es geschafft meinen Vater zu DSL zu überreden. Nun möchte ich demnächst gerne ein Netzwerk aufbauen, weiß darüber aber so gut wie nichts. Wer kann mir da helfen (im Grunde von Anfang an, was ich alles brauche, wie das mit IP Adressen läuft und so weiter). Für das Netzwerk werden wir einen Server haben, und zwei oder drei Rechner, die dann alle darauf zugreifen können sollen. Danke, Bine
  25. Warum bekomme ich bei der Ausführung meines Programms für 'fz' Null als Rückgabewert? #include "Sabine(1).h" void main() { FILE *fz, *fy; char buffer2[1001]={NULL}, buffer3[1001]={NULL}; char Datei[100][100], Liste[2][150], Eingabe[50][101]; char Ausgelesenes[128]; int Gefunden; int j = 0, k = 0, c, i = 0; int scnt = 0, scnt2 = 0, pos = 0; cout << "Mit diesem Programm können Sie eine " "beliebige Datei auf einen Suchbegriff hin \nuntersuchen!" " Wollen Sie keine weitere Datei mehr durchsuchen\nbitte " "'---' eingeben!\n\n"; cout << "Bitte geben Sie die List-Datei mit Pfad an: "; cin >> Liste[scnt]; fy = fopen (Liste[scnt], "r"); if (fy == NULL) cout << "Feler - List-Datei nicht gefunden!\n"; else { do { fgets (buffer3, 1000, fy); _strlwr(buffer3); strcpy(Datei[scnt], buffer3); scnt++; } while ((fgets (buffer3, 1000, fy))!= 0); do { cout << "Bitte das " << scnt2+1 << ". gesuchte Wort eingeben: "; cin >> buffer2; _strlwr(buffer2); strcpy(Eingabe[scnt2], buffer2); scnt2++; } while (strcmp(buffer2, "---")); for (j = 0; j < scnt-1; j++) { Gefunden = 2; fz = fopen (Datei[j], "r"); if (fz == NULL) cout << "Fehler - Datei nicht gefunden!\n\n"; else { . . . } } } } Bine

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...