Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9.912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Beiträge von Klotzkopp

  1. So, es gibt jetzt mehrere Möglichkeiten, in C++ so eine Liste zu implementieren. In der Standard Template Library (STL) gibt es mehrere Klassen, die genau das können. Es handelt sich dabei um Template-Klassen, d.h. es sind Schablonen, bei denen Du noch angeben musst, was die einzelnen Objekte der Liste sind.

    Ich würde std::vector empfehlen:

    #include <vector>

    std::vector< int > meinIntVector;

    deklariert einen "vector" von ints. So etwas könntest Du verwenden, um die Zahlen zu jedem Wort zu speichern. Du kannst mit meinIntVector.push_back( Zahl ) neue Zahlen zum vector hinzufügen.

    Für die Wortliste kannst Du auch einen vector verwenden, allerdings muss jeder Eintrag nicht nur das Wort selbst enthalten, sondern auch die Liste mit den Zahlen:

    typedef struct {

    char szWort[200];

    std::vector< int > DateiListe;

    } WortListenEintrag;

    std::vector< WortListenEintrag > meineWortListe;

  2. Also:

    Du brauchst eine Liste der Wörter im Speicher (anstelle der Datei Index.idx). Zu jedem Wort brauchst Du eine weitere Liste, in der die Zahlen gespeichert werden, die auf die Dateien verweisen, die in Path.idx stehen.



    Wortliste---> Hund Katze Maus

    Dateilisten| 1 3 1
    | 2 4 2
    v 7 5 5
    6 7
    8
    9
    [/CODE]

    Letztendlich geht es nur darum, die Daten, die in Index.idx abgelegt würden, im Speicher zu halten.

    So weit klar?

  3. Original geschrieben von lapso

    JavaScript ist NICHT geeignet, eine Passwortabfrage zu implementieren. JavaScript ist eine Client-Technik und außerdem für solche Aufgaben nicht vorgesehen.

    Das schlimmste, das ich in dieser Richtung mal gesehen habe, sah in etwa so aus:

    if( ( login == "User1" && pw == "PW1" )

    || ( login == "User2" && pw == "PW2" )

    || ( login == "User3" && pw == "PW3" )

    ...und so weiter, über 20 Zeilen.

    Da wurden wirklich sämtliche Logins samt Passwörtern an jeden Client im Klartext versandt. Die Seite ist inzwischen nicht mehr am Netz.

    Ach ja, natürlich hatte sich der Programmierer "abgesichert", indem er die rechte Maustaste abgefangen hat ;)

  4. Ausgehen musst Du von einer Liste, die die gefundenen Worte enthält. Zusätzlich muss aber jedes Element dieser Liste wiederum eine Liste von Zahlen beinhalten, die die Dateien bezeichnen, in denen das Wort gefunden wurde. Wie das konkret aussieht, hängt davon ab, was für eine Art von Liste Du benutzt.

    Willst Du die STL verwenden, eine verkettete Liste oder eine Wrapper-Klasse für einen selbsterweiternden Array? Oder was ganz anderes?

  5. Original geschrieben von DocNeo

    Es lebe die Zensur. Juhu.

    Wenn ich zu Dir nach Haus komme, und irgendwas auf die Wände schreibe, Dir das nicht passt, und Du es wieder wegwischst und mir Hausverbot erteilst, ist das dann für Dich auch Zensur?

  6. Ich habs grad mal durchgespielt: Wenn Du CAsyncSocket benutzt, brauchst Du keine Threads zu starten, offenbar macht das die MFC unter der Haube.

    Der Server braucht zunächst einmal einen Socket, mit dem er Create( port ) und Listen aufruft.

    Der Client braucht einen Socket, mit dem er Create() und Connect( port, "ip" ) aufruft.

    Der Socket des Servers erhält dann einen OnAccept-Aufruf. Da drin musst Du einen neuen CAsyncSocket erzeugen und mit Accept entgegennehmen. Ich kann Dir das Beispiel schicken, wenn Du möchtest. Ist aber nicht vollständig, ich leake die Sockets und die Daten gehen bisher nur von den Clients zum Server.

  7. Aber Du könntest der struct Menge einen Konstruktor verpassen, der z.B. pNaechster auf NULL setzt. Wenn Du das nämlich irgendwo vergisst, dann hast Du ein Problem.

    Allerdings müsstest Du, damit der auch ausgeführt wird, die neuen Strukturen mit new holen und mit delete freigeben. Aber wenn Du sowieso C++ benutzt, ist das ohnehin empfehlenswert.

  8. Ein schönes Beispiel für einen SMTP-Client :)

    Nur eine Anmerkung: Das Programm prüft zwar, ob der SMTP-Server eine Antwort auf HELO, MAIL FROM, RCPT TO usw. sendet, aber es scheint nicht den Inhalt der Antwort zu prüfen.

    Die Antwort beginnt immer mit einer Zahl, die wiedergibt, ob die Eingabe gültig war. 250 bedeutet m.W. OK, alles über 400 ist ein Fehler.

  9. void CMenge::schneiden_mit(CMenge *pMenge)

    {

    struct Menge *pZeiger;

    pZeiger=pMenge->pAnfang;

    while(pZeiger!=NULL)

    {

    if(this->enthalten_in(pZeiger->nummer)!=true)

    {

    this->entnehmen(pZeiger->nummer);

    }

    pZeiger=pZeiger->pNaechster;

    }

    pZeiger=this->pAnfang;

    while(pZeiger!=NULL)

    {

    if(pMenge->enthalten_in(pZeiger->nummer)!=true)

    {

    this->entnehmen(pZeiger->nummer); <--- Hier ist der Fehler

    }

    pZeiger=pZeiger->pNaechster;

    }

    }

    Nach dem Entnehmen zeigt pZeiger auf freigegebenen Speicher, denn genau die Struct mit der angegebenen Nummer hast Du ja gerade aus der Liste entfernt. Der letztendliche Absturz des Programms ist dann wohl ein Folgefehler.

  10. Original geschrieben von TAZttDevil

    is ja gut... hab ich je was anderes behauptet??

    Wenn Du mich so fragst, ja ;), und zwar hier:

    Original geschrieben von TAZttDevil

    Deshalb muß es das Buch aber nicht nicht geben...

  11. Wenn Du das meinst:

    Original geschrieben von Technician

    entweder man macht ne Ausnahme, in welchen Index man den Index aufnimmt oder der Index steht in keinem Index...

    Das sind genau die beiden Fälle, die ich beschrieben habe, die dazu führen, dass der Index entweder fehlerhaft oder unvollständig ist: Wenn man eine Ausnahme macht (und dieser Index sich selbst enthält), enthält er ein Buch, das auf sich selbst verweist. Wenn der Index in keinem Index steht, dann fehlt ein Buch, das nicht auf sich selbst verweist.

    Es kann ein solches Buch nicht geben.

    Wenn es sich selbst enthält, ist ein falscher Eintrag drin, wenn es sich nicht selbst enthält, fehlt ein Eintrag. Eine dritte Möglichkeit gibt es m.W. nicht, und damit folgt, dass das Buch, völlig unabhängig davon, ob es sich selbst enthält, nicht das sein kann, was es zu sein vorgibt.

  12. Original geschrieben von TAZttDevil

    @Klotzkopp: Wie kommst du daruaf, das es das Buch nicht gibt??

    Zumindest gibt es kein solches Buch, das seiner Bezeichnung gerecht wird.

    Ein Buch, das nur Verweise auf alle Bücher enthält, die keine Verweise auf sich selbst enthalten, kann es nicht geben, weil das Buch selbst nicht drin stehen darf, aber auch nicht fehlen darf.

    Wenn es selbst drinstehen würde, dann stünde ein Buch drin, das einen Selbstverweis enthält -> Der Buchtitel ist falsch.

    Andersrum: Wenn es selbst nicht drinstehen würde, dann fehlte ein Buch ohne Selbstverweis -> Der Buchtitel ist falsch.

    Folgerung: Es ist egal, ob das Buch sich selbst enthält oder nicht - es enthält in jedem Fall nicht nur alle Bücher ohne Selbstverweis -> So ein Buch gibt es nicht.

  13. Hey, ein Freund des ästhetischen Quellcodes ;)

    Du kannst (AFAIK nicht nur mit VC++) Stringliterale einfach aneinanderhängen, wenn Die Einzelteile mit Anführungszeichen abgeschlossen sind. Dabei ist egal, wie viele Whitespaces (Leerzeichen, Tabs, Zeilenvorschübe) dazwischen sind:


    printf("Hello" " Wo"
    "rl"

    "d!\n");
    [/CODE]

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...