Zum Inhalt springen

streams verstehen


AndiE

Empfohlene Beiträge

Hallo,

ich hatte mich mich bisher noch nie richtig mit dem "Stream-Konzept" C++ beschäftigt. Bisher habe ich mir die Daten von der Tastatur oder dem Dialog geholt und auf den Monitor/View geschrieben. Auf den datenträger habe ich Daten nur geladen und gespeichert.

Nun wollte ich für ein Projekt unter ausschliesslicher Nutzung der MFC einen HTML-ähnlichen Eintrag, der in einer Datei vorliegt, verarbeiten:

<satz nr=1 > Text </satz>

Das Programm soll hier den "Text" in einem CStringArray satz unter der Nr 1 speichern.

Mein Vorgehen wäre(Datei ist geöffnet), um den ersten "Tag" zu laden :


char c;

CStringList arglist;

CString wort;

CFile file;

  do

  {

     // Werte zurücksetzen

     wort="";  

     zeichen=0x20;

     do

     {

        file.read(c,1)

        wort+=c;

     }while(c!=' ') // Lese Wort

     arglist.append(wort);

  }while(wort!='>');

Der Code soll eine StringListe wie diese erzeugen:

1. <satz

2. nr=1

3. >

Das würde mir schon zur Weiterverarbeitung reichen, weil ich dann die Argumente prüfen und aus dem zweiten Eintrag die Satznummer abtrennen kann.

Nun wird immer nur ein Zeichen eingelesen, was bei längeren Dateien sicher nicht sehr effektiv ist.

Hat jemand eine Idee oder enen Link, wie ich das effizienter lösen kann?

Danke

MfG

André

Link zu diesem Kommentar
Auf anderen Seiten teilen

tach andie,

habe bisher noch nicht in c# programmiert, aber wenn es in c++ schon möglich ist ganze wörter einzulesen, dürfte es da auch was in c# geben.

logischerweise wäre es das sinnvollste den text iterativ nach dem string "nr=" zu durchsuchen und mit dem definierten abstand zwischen dem gesuchten string und dem satz zu springen um eben diesen auszulesen.

da c# eine .net sprache ist, müsstest das z.b. mit der methode substring() gehen. alternativ könntest du was anderes mit readline() probieren (dürfte recht selbsterklärend sein :-) )

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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