tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
1488
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stephanl stephanl ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    37
    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
     
    MFG StephanL

  2. #2
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    #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
     

  3. #3
    stephanl stephanl ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    37
    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 :
    1
    2
    3
    4
    5
    
    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
    {
        //{{AFX_DATA_INIT(CAboutDlg)
        //}}AFX_DATA_INIT
    }

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

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

    Geht das? Oder liest er die dann beim debuggen?

    Danke schonmal


    Stephan
    Geändert von stephanl (02.03.04 um 13:14 Uhr)
     
    MFG StephanL

  4. #4
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    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
     

  5. #5
    stephanl stephanl ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    37
    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...
     
    MFG StephanL

  6. #6
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    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
     

  7. #7
    stephanl stephanl ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    37
    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
     
    MFG StephanL

  8. #8
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    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
     

  9. #9
    stephanl stephanl ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    37
    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
     
    MFG StephanL

  10. #10
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    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 !
     

  11. #11
    Avatar von colblake
    colblake colblake ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    dresden
    Beiträge
    214
    Hi stephanl
    also,die Präprozessoranweisung "#include ..." schreibt den Inhalt der genannten
    Datei noch vor dem compilieren des Programms, an die Stelle wo die Include Anweisung steht, in den Quelltext.
    Ist also nach dem compilieren nicht mehr veränderbar.

    Wenn Du sowas machen willst,denk mal über .NET nach.

    Was Dir vieleicht hilft (für das Dateiproblem) ist die Klasse CFile,mit der Du Dateien in jeder art lesen und schreiben kannst.


    Mfg col.blake
     
    Über so viele Sachen wächst Gras , man kann keiner Wiese mehr trauen.

  12. #12
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Wenn Du sowas machen willst,denk mal über .NET nach.
    *Kopf kratz* Warum .NET?
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  13. #13
    Avatar von colblake
    colblake colblake ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    dresden
    Beiträge
    214
    *Kopf kratz* Warum .NET?
    Hm kenn mich net so aus mit .NET,
    aber stimmt es nicht das der Quellcode bei .net erst dann compiliert wird wenn das Programm zum ersten mal ausgeführt wird?
    Wenn ich falsch liege sorry.
     
    Über so viele Sachen wächst Gras , man kann keiner Wiese mehr trauen.

  14. #14
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Ich bin mir nicht sicher, ob das zwangsläufig so ist - wahrscheinlich nicht.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  15. #15
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    In diesem zusammenhang hat .NET keinen Vorteil.

    C# , .NET Programme liegen in einer BinärenForm vor, die noch einmal (bei Zugriff) durch ein JIT (Just In Time) Compiler gejagt wird um maschienencode zu erzeugen ,dies bringt Tempotechnisch einiges im vergleich zu Java wo ja quasi ein eigener Interpreter für deren binäres Format vorliegt
     

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 03.07.09, 11:13
  2. includen einer datei im root
    Von neuling321 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 17.01.08, 20:17
  3. Antworten: 3
    Letzter Beitrag: 21.07.07, 18:48
  4. JPG-Datei aus einer großen Datei auslesen bzw. an diese anhängen
    Von jabonva im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 6
    Letzter Beitrag: 14.03.07, 22:54
  5. Antworten: 2
    Letzter Beitrag: 13.01.04, 08:40