Includen und Auslesen einer Datei

stephanl

Mitglied
Hallo,

ich habe drei Fragen zum "includen" einer Datei:

Ich weiß, dass mit "includen" einer Datei normalerweise Dateien wie "*.h" includet werden. Ich möchte aber eher Dateien wie "registriert.txt" in mein Projekt includen. Hierbei soll diese "include"-Funktion weniger wie oben beschrieben benutzt werden, eher wie die Funktion "include" oder "fopen" in PHP.

D.h. ich möchte in ein Dialog eine Datei includen (hier registriert.txt), die in dem Verzeichnis (relativ zum Verzeichnis des Programms) includes/sys/reg/registriert.txt liegt.

Wie kann ich das realisieren? Ich habe mit der Suchen-Funktion nichts gefunden, sei es, dass ich nicht nach dem Fachbegriff für diesen Einsatz von "include" gesucht habe oder ich etwas übersehen habe (was unwarscheinlich ist, bei 3 Ergebnissen ;-) )

Meine zweite Frage wäre, wie ich den Inhalt als Text dieser "includeten" Datei auslesen und an den Browser übergeben kann, also wie bei HTML ein Formular.

Und nun meine letzte Frage: Wie kann ich einen Dialog A in einen Dialog B includen, also wie ein IFRAME als Vergleich in HTML.
Hierbei geht es darum, dass dieser Dialog A immer gleich bleibt. Ich möchte vermeiden, dass ich alles ändern muss, wenn z.B. in dem Dialog A ein weiterer Button hinzugefügt werden soll.

Ich arbeite mit der AutorenEdition von VisualC++, habe dazu das Buch C/C++ von Markt und Technik, das mir in diesen Fragen nicht weitergeholfen hat, evt. auch aus den gleichen Gründen, warum mir die Suchen-Funktion des Forums nicht weiterhalf.

Vielen Dank schon im Voraus


Stephan
 
#include "Dateiname"

Diese Präprozessoranweisung sagt sie soll an diese Stelle die Datei als Text einfügen egal welche Endung.
Wenn in der Datei Text enthalten ist und du ihn als String haben willst musst du auf Zeichen mit besonderer Bedeutung achten \ " etc

wenn du die Datei nicht mit eincompilieren willst kannst du fopen, fread etc benutzen , achte nur darauf die Datei im Textmodus zu öffnen

wegen den Dialogen schau dir mal die Klassen
CPropertySheet
CPropertyPage
an

Ich hoffe das reciht dir und du wühlst dich durch , so lernt man das meiste ;)
 
aha, und geht es auch, eine Datei zu öffnen, die im debuggten Modus in diesem Verzeichnis liegt?

Also nicht beim Debuggen sondern erst, wenn der User die öffnet, das soll nämlich "Registriert für" werden...

Danke schon mal

Stephan

// edit:

Und wenn ich es hinter einen Text einfügen will, steht da dann z.B. "Registriert für:", wenn ich diesen anklicke (zweimal), dann komme ich zu diesem Code:

Code:
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

Kann ich nun einfach zwischen den beiden "{" und "}" dies einfügen:

Code:
  FILE * stream;
  stream=fopen("includes/db/user.db","r");
  fclose(stream);

Geht das? Oder liest er die dann beim debuggen?

Danke schonmal


Stephan
 
Zuletzt bearbeitet:
Verstehe nicht ganz was du meinst aber vielleicht hilft das:

- Mann kan unter Projekt Einstellungen Linker outputfile bestimmen wo das fertige EXE hinkommt und wie es heißt
- Wenn du Text in ein Dialogfeld einfügen willst , musst du ein Textfeld in den Dialog legen diesem z.B.: eine CString Variable über den Wizard zuweisen und dann den Inhalt der Datei auslesen und einfügen
- Wenn man eine Datei öffnet muss/sollte man diese auch lesen fread
 
ok, nur meine Frage war eher, ob das File, das in den Dialog "eingelesen" werden soll in dem Verzeichnis von dem noch nicht debuggten Code liegen muss, oder ob man das auch so machen kann, dass diese Datei beim gedebuggten Code ligen kann...
 
was ist "gedebuggte Code" ! Meinst du die DEBUG Version

du kannst Dateien von egal wo mit fopen öffnen !
du musst halt nur den Pfad kennen
 
ja, ok, aber wie kann ich das machen, dass ich die Datei direkt nach einem Text anzeige? Wo steht überhaupt der Text?

Danke schon mal :)

Stephan
 
ja, ok, aber wie kann ich das machen, dass ich die Datei direkt nach einem Text anzeige? Wo steht überhaupt der Text?

also langsam verzweifle ich , was willst du genau erreichen

Wo willst du den Text Anzeigen ? Dialog , Windows Fenster !
Was meinst du mit "Datei direkt nach einem Text " anzeigen ?

Bitte ein einfaches Beispiel , eventuell mit Grafik oder was weiß ich
 
oki, sorry, ich erkläre es nochmal:

Der User muss bei der Installation eingeben, wer er ist, also z.B. Max Mustermann und die Firma (evt.). Dann soll das in eienr Datei abgespeichert werden, die in dem installierten Programmordner liegt, in die das Programm auch installiert wird. Dann soll mein Programm dieses File auslesen, damit da stehen kann, wer die Software benutzt, klar.

Mein Problem ist dabei aber, dass ich nicht weiß, wenn ich in einer MFC-Dialog Anwendung einen Text in einen Dialog (bei mir AboutDlg) schreibe, wie ich es machen kann, dass hinter dem Text diese Datei ausgelesen wird.

Also das würde dann so aussehen:

Registriert für: [- Name, evt Firma -]

Danke schonmal

Stephan

PS: Das mit der Installation war nur ein Bsp, das mach ich am Schluss, wenn das Prog fertig ist, die Installation ist nänlich schwerer :)
 
Achso .. also ich würde das z.B.: so machen

Datei öffnen
Daten der Datei auslesen in ein C-String (char[])
C-String in ein CString ablegen
Datei schließen

Somit hast du den Text als CString Objekt.

Nun erstellst du mit dem Class Wizard ein Textfeld (diese nicht editierbaren). unter Eigenschaften gibts du dem Ding eine ID z.B.: ID_REG_STRING. Mit dem Klassenassistent legst du eine Variable vom Typ CString für diese ID an und nun musst du den String nur noch kopieren und fertig !
 
Zurück