Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Constructor/Destructor (Modul)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 27.05.2012, 18:10    Titel: Constructor/Destructor (Modul) Antworten mit Zitat

Ich wollte mir ein logfile zu kontrollzwecken basteln und habe dafür ein constructor und destructor im Modul, aber scheinbar arbeitet das ganze so nicht richtig...

Wenn ich nichts weiteres mache als das Modul einzubinden und dann versuche etwas zu schreiben führt er immerhin des constructor und destructor aus (aber scheinbar bevor das programm zuende ist, denn weiter ist nichts im file)

In einem anderen modul wo ichs testen wollte legt er zwar die datei an, aber bleibt leer...

Code:

''WriteToLog
#Define WriteToLog_DBG

#IfDef WriteToLog_DBG
    Common Shared WLN as Integer
   
    Public Sub WriteToLogConstructor Constructor
        WLN = FreeFile
        Open "FB_OpenGL.log" for Append as #WLN
            Print #WLN,"Log begin: "+date+" | "+time
    End Sub
   
    Public Sub WriteToLogDestructor Destructor
            Print #WLN,"Log end: "+date+" | "+time
        Close #WLN
    End Sub
   
    Public Sub WriteToLog(logstring as string, logfunction as string="")
        Dim WLN as Integer
        WLN = FreeFile
           
        Dim functionname as string
       
        if len(logfunction) then
            functionname = " | in procedure: "+logfunction
        Else
            functionname=""
        End if
       
        Print #WLN,logstring+functionname
    End Sub
#EndIf


So getestet:
Code:

#include "WriteToLog.bas"

WriteToLog "SCHREIB!!!!!!!!!!!!"
END ' HIER ERST DESTRUCTOR AUSFÜHREN!!!!!


sind im Logfile dann immerhin:
Zitat:

Log begin: 05-27-2012 | 18:03:50
Log end: 05-27-2012 | 18:03:50


und wie gesagt in einen tiefer verschachtelten programm legt er zwar die datei an, schreibt aber gar nicht erst was hinein...

was ist falsch?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 27.05.2012, 18:29    Titel: Antworten mit Zitat

Du erstellst in der Schreibe-Sub eine neue lokale Variable WLN, die die globale überdeckt, das kann so also nicht funktionieren. Zudem weist du nochmal FreeFile zu, was wohl nicht sinnvoll ist, wenn du in die bereits geöffnete Datei schreiben willst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 27.05.2012, 18:43    Titel: Antworten mit Zitat

Das ist irgendwie bei der umschreiberei hängen geblieben, danke

Wollte gerade noch behaupten es geht deswegen immernoch nicht aber hab den fehler gefunden...
es funktioniert nun richtig, der fehler lag das ich am ende meines testprograms ein sleep hatte und vorher ein opengl screen initiiert habe,

da hängt sich das programm für gewöhnlich auf... ohne sleep geht es nun

Danke
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz