Programm zur Wörtersuche in verschiedenen Texten
-
Ja ok aber wie packe ich das da rein?
Sorry aber das check ich nicht richtig.
-
ink schrieb:
Ja ok aber wie packe ich das da rein?
Sorry aber das check ich nicht richtig.
Wo ist denn das Problem? Weist du nicht, wie man mit Stukturen und Feldern arbeitet?
-
ProgChild schrieb:
ink schrieb:
Ja ok aber wie packe ich das da rein?
Sorry aber das check ich nicht richtig.
Wo ist denn das Problem? Weist du nicht, wie man mit Stukturen und Feldern arbeitet?
Nein das verstehe ich noch nicht richtig.
Werde das nochmal in diesem Openbook nachlese.
Aber für einen Wink mit dem Zaunpfahl wäre ich auch dankbar.
-
ink schrieb:
Nein das verstehe ich noch nicht richtig.
Werde das nochmal in diesem Openbook nachlese.
Aber für einen Wink mit dem Zaunpfahl wäre ich auch dankbar.
Weis net, wie ich noch winken soll
typedef struct { char wort[64]; char datei_name[128]; int zeile; } Daten; ... // z.b. in main Funktion Daten index[1028]; int n; // n-ter treffer // jetzt beim durchsuchen char* gefundenes_wort; int gefundene_zeil; // eintragen strcpy(index[n].wort, gefundenes_wort); strcpy(index[n].datei_name, aktuelle_datei); index[n].zeile = gefundene_zeile; n=n+1; // nächstes Wort suchen...
So könnte es gehen. Ist zwar zum durchsuchen schlechter, aber du kannst es ja auch anders machen.
-
Super Danke
Wie würde das denn dann bei einem Array aussehen und was wäre denn für die Aufgabe die ich beschrieben habe vorteilhafter? Ein Bekannter meinte das das nicht richtig mit einem Struct geht
hat er da recht.Noch was: gibt es eine Funktion oder einen Ausdruck in C der die eingelesenen Wörter alle klein schreibt?
-
ink schrieb:
Wie würde das denn dann bei einem Array aussehen
Ich Benutze doch oben ein Array.
ink schrieb:
und was wäre denn für die Aufgabe die ich beschrieben habe vorteilhafter?
Wenn du es richtig machst, schreibst du die Wörter einen AVL-Baum/Red-Black-Tree, der als Schlüssel die Wörter nimmt, und als Daten eine Doppeltverkettete Liste mit den Dateinamen hat, aber das wirst du noch nicht umsetzen können.
ink schrieb:
Ein Bekannter meinte das das nicht richtig mit einem Struct geht
hat er da recht.Wie gesagt. In gewissem maße kannst du es garnicht vernünftig machen, weil du dafür noch viel mehr wissen müsstest.
ink schrieb:
Noch was: gibt es eine Funktion oder einen Ausdruck in C der die eingelesenen Wörter alle klein schreibt?
Nein. Nur einzelne Zeichen. Die Funktion heißt tolower.
-
ProgChild schrieb:
ink schrieb:
Ein Bekannter meinte das das nicht richtig mit einem Struct geht
hat er da recht.Wie gesagt. In gewissem maße kannst du es garnicht vernünftig machen, weil du dafür noch viel mehr wissen müsstest.
Das stimmt leider.
Ich bin langsam echt am verzweifeln und glaube das ich das nie schaffe.
Das Ding muss bis zum 1.3 fertig sein.
-
ink schrieb:
Das stimmt leider.
Ich bin langsam echt am verzweifeln und glaube das ich das nie schaffe.
Das Ding muss bis zum 1.3 fertig sein.Lass dich nicht entmutigen. Du hast ja noch genügend Zeit und du sollst nicht die beste Lösung der Welt erstellen, sondern "nur" eine Lösung. Schau dir genau die Informationen über Arrays und Strukturen an, die du hast, dann überleg dir, wie man daraus zusammen eine Tabelle bauen kann. Und wenn du speziellere Fragen hast, kannst du sie ja hier stellen.
-
Ok mal sehen ob ich es richtig verstanden habe.
Ich öffne durch fopen die Datei deren Wörter ich indexieren will.
Dann lese ich jedes Wort zeichenweise durch die Funktion getc/fgetc ein. Das muss ja dann bis eof gehen oder**?**Und durch deine Codestück wird das dann in ein array eingetragen.
Versteh ich das soweit richtig?Meine Frage:
Man muss ja die Datei mit einer Stoppwortliste die in einer anderen Datei ist vergleichen.
Nur die Wörter die nicht in der Stoppwortliste sind werden dann eingetragen.
Wie und Wann vergleiche ich diese beiden Dokumente am besten**?**
-
ink schrieb:
Ok mal sehen ob ich es richtig verstanden habe.
Ich öffne durch fopen die Datei deren Wörter ich indexieren will.
Dann lese ich jedes Wort zeichenweise durch die Funktion getc/fgetc ein. Das muss ja dann bis eof gehen oder**?**Das sollte gehen.
ink schrieb:
Und durch deine Codestück wird das dann in ein array eingetragen.
Versteh ich das soweit richtig?Ja, wird es.
ink schrieb:
Meine Frage:
Man muss ja die Datei mit einer Stoppwortliste die in einer anderen Datei ist vergleichen.
Nur die Wörter die nicht in der Stoppwortliste sind werden dann eingetragen.
Wie und Wann vergleiche ich diese beiden Dokumente am besten**?**Lies jedes Wort aus der Stoppwortliste in ein Array ein. Und vergleich es dann mit den Zeilen aus den Dateien.
-
Muss die Datei denn dann immer mit fclose geschlossen werden oder kann man das wegfallen lassen?
-
ink schrieb:
Muss die Datei denn dann immer mit fclose geschlossen werden oder kann man das wegfallen lassen?
Ja muss sie.
-
Ich öffne ne Datei mit fopen, dann lese ich Sie irgendwie Zeilenweise aus mit fgets, das wird dann mit strtok nach Leerzeichen zerlegt und dann mit fclose das wieder geschlossen.
Wie würde das denn dann circa aussehen?
Ich kann mir das noch nicht richtig vorstellenDanke
-
Kann mir da denn keiner helfen?
-
ink schrieb:
Kann mir da denn keiner helfen?
Deine Frage ist ziemlich ungenau. Du hast doch schon beschrieben, wie es ungefähr aussehen soll.