txt file einlesen! Aber wie?
-
Hallo
Ich möchte eine Textdatei mit boolschen Gleichungen einlesen
Die sind alle immer so aufgebaut, mal mehr mal weniger Gleichungen.A_1 = NOT A_1
; 1
A_1 .CLK = T_1
; 1
A_2 = A_1 & NOT A_2 OR
NOT A_1 & A_2
; 2
A_2 .CLK = T_1
; 1
A_3 = NOT A_2 & A_3 OR
A_1 & A_2 & NOT A_3 OR
NOT A_1 & A_3
; 3__END
Jede Gleichung wird immer wie ihr seht durch ein Semikolon abgeschlossen.
Ich habe mir das so so gedacht das ich ein CString - Array erstelle und dann beginne immer jeweils bis ein Semikolon kommt das Array zu füllen.{ CFile file; CFileException fileException; if ( !file.Open(strFile,CFile::modeRead,&fileException) ) { // bla bla bla } else { char text[256]; UINT nActual = 0; file.Seek( 0, CFile::begin ); nActual = file.Read( text, sizeof( text ) ); } }
So hab ich das bis jetzt. Er liest mir aber jetzt das ganze 256er Array voll.
Frage:
1. Wie kann ich dafür sorgen das er bei einem Semikolon abbricht das Array zu füllen
2. Und sich die Position merkt und dort wieder anfängt ein 2. Array mit der nächsten Gleichung zu füllen
3. Ist der Ansatz überhaupt erstmal i.O. oder hat jemand ganz andere Vorstellungen wie er das machen würde, würde mich alles interessieren.
4. Welche Nutzen bzw. Vorteile haben CStdioFile oder CArchive? ( CArchive wohl eher nicht )Danke an jeden der mal kurz drüber schaut!
-
RunSeb schrieb:
4. Welche Nutzen bzw. Vorteile haben CStdioFile oder CArchive? ( CArchive wohl eher nicht )
Warum eher nicht? Ich benutze fast immer CArchive, wenn ich Textdateien zeilenweise verarbeiten will. Zu dem Thema gab es übrigens schon mal einen Thread -> http://www.c-plusplus.net/forum/viewtopic-var-t-is-171744
-
Ja, den Beitrag hab ich schon gelesen. Danke, ist auch sehr interresant um CArchive zu verstehen.
Aber ich möchte das halt nicht zeilenweise auslesen, sondern den String immer bis zum Semikolon, und die Gleichungen gehen manchmal über ganz viele Zeilen bis ein Semikolon kommt!
-
Wie wäre es, wenn du alle Zeichen einlließt, bis zum Siikolen. Glaub FindOneOf geht da. Das schiebst du dir dann in einen array und löschst dann alles bis zum ersten simikolon. Dann machste das ganze von vorne mit dem "neuen" Wert den du hast.
Wäre bestimmt mal nen versuch wert.
Bin aber gere nicht so sicher, obs klappt, denn vielleicht komm ich auch gerade mit PHP durcheinander (hab da gerde den kopf mit voll
). schau dir am besten die Funktonen FindOneOf und der gleichen an.
-
Die Funktion FindOneOf gibts bei CFile nicht.
-
ist ne CString funktion