Wörter in TXT suchen und ausgeben



  • Hallo!
    Ich brauche ein Programm, das einen Email-Folder analysiert. Ein solcher Folder ist eine Textdatei, in der Ihre Emails der Reihe nach gespeichert sind. Der Anfang einer Email hat dabei einen festen Aufbau. Ihr Programm soll jetzt den Namen des Folders als Argument nehmen und folgendes ausgeben:

    Anzahl der Emails
    Für jede Email: Absender, Betreff und Datum

    Jetzt meine Fragen
    1.Wie suche ich nach den stings "from" "Subject" " "Date" in dieser Txt datei und wie soll ich es dann für die Ausgabe in die c++ datei einlesen?
    2.wie mache ich die ausgabe vom text nach FROM: ... und nach Subject:....

    Wäre euch echt dankabr für eine Hilfe...hab des halt nicht so drauf...



  • Du liest die ganze Datei in einen CString ein und suchst darin mit der Funktion Find.



  • Hy, ich bin och net der held aber ich würde eine
    Klasse erstellen mit den variablen die du speichern willst
    danach würde ich mit
    fstream.h
    alles auslesen und dabei kontrollieren
    dabei solltest du die E-mail, wenn Name etc. immer
    in selber reihenfolge oder durch bestimmte kennzeichen zu erkennen sind
    z.B. <Name>(augenmerk auf Pfeile)
    eimailadresse@sag.de (augenmerg auf @)
    durch diese Kennzeichen in der Abfrage Erkennen und in der vorher angelegten
    Klasse ablegen.
    Die Grösse ist hierbei narürlich variabel
    classe c_classe[3300] oder so
    damt kannst du dein Prog sogar erweitern und die Personen Katalogisiern
    selber in einer txt binär oder so abspeichern etc......
    hoffe ich hab dir ein bisschen geholfen 🙂



  • fstream.h ist nix. Wenn er schon im MFC-Forum postet, die MFC also zur Verfügung hat, dann soll er CFile verwenden. Einfacher von der Handhabung.

    classe c_classe[3300]

    Das ist natürlich Unsinn, wenn er nicht weiß, wieviele Elemente endgültig vorhanden sein werden. Für soetwas nimmt man entweder ein CArray oder einen std::vector.



  • sorry 🙂



  • Sorry?

    So lange du bei Kritik dazulernst und nicht auf stur schaltest ist ein "sorry" völlig unangebracht 🙂



  • Könntet Ihr des ein bischen in einem c++ code ausdrücken?



  • So sieht ein auszug aus einer mail datei aus

    Received: from mx22.sjc.ebay.com (mxpool11.ebay.com [66.135.197.17])
    by mx49.sjc.ebay.com (8.12.3/8.12.3) with ESMTP id j3862Be0008804
    for urban.andreas@arcor.de; Thu, 7 Apr 2005 23:02:11 -0700
    Received: from sj-v3conta01 (sj-v3conta01.sjc.ebay.com [10.6.189.174])
    by mx22.sjc.ebay.com (8.12.3/8.12.3) with ESMTP id j3861Vhi030348
    for urban.andreas@arcor.de; Thu, 7 Apr 2005 23:02:11 -0700
    Date: Thu, 7 Apr 2005 23:02:11 -0700
    Message-ID: 1269938574.1112940131078.JavaMail.ebayapp@sj-v3conta01
    From: solidworkspe@aol.com
    Reply-To: solidworkspe@aol.com
    To: urban.andreas@arcor.de
    Subject: =?ISO-8859-1?Q?Antwort_auf_Ihre_Frage_zum_Artikel_mit_der_Nr=

    da gibts x mal from und x mal @

    ich sollte wissen wie ich konkret die Strings "From" und "Subject" suche/einlese
    und anschliessend praktisch den text nach dem doppelpunkt wieder ausgebe
    mit ein bischen MFC code wäre mir wahrscheinlich geholfen

    Gruss
    uzo



  • Probier´s mal mit etwas in der Art von:

    CString Inhalt;
    
    ... Datei in Inhalt einlesen ...
    
    int AnfangFrom = Inhalt.Find("From:");
    int EndeZeileNachFrom = Inhalt.Find("\r\n",AnfangFrom);
    int AnfangSubject = Inhalt.Find("Subject:");
    int EndeZeileNachSubject = Inhalt.Find("\r\n",AnfangSubject);
    CString TextNachFrom = Inhalt.Mid(AnfangFrom+5,EndeZeileNachFrom-AnfangFrom-5);
    CString TextNachSubject = Inhalt.Mid(AnfangSubject+8,EndeZeileNachSubject-AnfangSubject-8);
    

    Eventuell musst du noch die Grenzen und Längen etwas verschieben, ausprobiert habe ich es nicht. Vielleicht musst du auch nach "\n" suchen anstatt nach "\r\n".



  • hm ...in c++ würde ich es glaube ich etwas besser verstehen..und was ist mit Betreff bzw subject wenn es so in 2 oder 3 zeilen steht?

    Subject: Re: Frage zum Artikel mit der Nr.: 5764530187 - NEU Sonderaktion
    Scart VGA Adapter Kabel 25% sparen



  • Nur für die Zukunft. Du brauchst hier keinen Mailheader posten da:
    1. Für deine AUfgabe nicht erforderlich da es sowieso nur Text ist
    2. Jeder der sich auskennt bzw. selbst ein Mailprogramm hat so eine Mailheader kennt.

    Nun zu deiner Aufgabe. Ich sehe hier 3 Möglichkeiten:
    1. Du postest im Forum Projekte
    2. Du lieferst selbst etwas arbeit und setzt mal das um was Dir bisher gezeigt wurde.
    3. Du beginnst wieder mit Grundlagen denn Datei einlesen und Stringbearbeitung sind Grundlagen.

    Aus deiner Beschreibung entnehme ich auch das es eine Aufgabe ist.
    Hier haben wir einen Grundsatz:
    Der Frager soll etwas lernen und nicht einfach Copy/Paste.


Anmelden zum Antworten