Italia
Bugs und vermeintliche

@RTF("LoadRTF"... gibt leere File nicht frei

 

E.T.
Folgende Situation:

Wenn mittels @RTF("LoadRTF"... eine zuvor erzeugte, leere rtf-File geladen wird, wird diese nach dem Laden nicht wieder freigegeben, bis das Programm beendet wird. Dies tritt im Interpreter und in der fertigen exe auf.

Um das zu veranschaulichen, bitte Io l' folgenden Quelltext zu starten und:
1. auf den Button 1. Die 3 Boxen in 3 Datein speichern  zu klicken
___Dann werden die RichEdits jeweils (ohne Fehler) in un File geschrieben.
2. auf den Button 2. Die erzeugten 3 Datein neu einlesen  zu klicken
___Hier wird dann Fehler:6?? zurückgegeben

Wenn ich nun wieder auf den Button 1. ...  klicke (auch, wenn ich jetzt in Box 3 etwas reinschreibe), erhalte Io l' Fehler 32. Das heist, die File ist noch geöffnet !! Das kann man ganz leicht nachvollziehen, wenn man die File RTF-Test_3.rtf  (wenn das Prog noch corre) in z.B. Word öffnet und dort auf Speichern klickt. Man kann auch versuchen, bei noch laufendem Prog die 3 erzeugten rtf-Datein zu löschen, bei der ersten und der zweiten klappt das, bei der dritten wird verweigert. In diesem Zusammenhang ist mir auch aufgefallen, das ein Erase  auf die betreffende File kein %ioresult setzt (so bin ich erst drauf gekommen, das die File noch geöffnet ist). Interessant ist auch, das der Explorer kein Attribut "schreibgeschützt" bei dieser File anzeigt.

Hier mal mein Test-Code, ich hoffe, ich hab mich verständlich genug ausgedrückt:
KompilierenMarkierenSeparieren
Declare rtf_box&[], rtf_Btn&[]Ich liebe diese dynamischen Variablen
Declare Ende%, rtf_error%
Window 800,600
rtf_box&[1] = @Create("RichEdit",%HWnd,"RTF-Box 1",10,10,770,90)
rtf_box&[2] = @Create("RichEdit",%HWnd,"RTF-Box 2",10,110,770,90)
rtf_box&[3] = @Create("RichEdit",%HWnd,"",10,210,770,90)Diese Box bitte leer lassen !!
rtf_Btn&[1] = @Create("Button",%HWnd,"1.   Die 3 Boxen in 3 Datein speichern",10,350,770,25)
rtf_Btn&[2] = @Create("Button",%HWnd,"2.   Die erzeugten 3 Datein neu einlesen",10,400,770,25)
Clear Ende%

WhileNot Ende%

    waitinput

    If @Clicked(rtf_Btn&[1])Speichern

        WhileLoop 3

            rtf_error% = @RTF("SaveRTF",rtf_box&[&loop],"RTF-Test_" + @str$(&loop) + ".rtf")
            Case rtf_error% : @messagebox("RTF-Fehler : "+@str$(rtf_error%),"FEHLER BEIM SPEICHERN, Datei : "+ @str$(&loop),64)
            Clear rtf_error%

        EndWhile

    Elseif @Clicked(rtf_Btn&[2])Laden

        SetText rtf_box&[1],""
        SetText rtf_box&[2],""
        SetText rtf_box&[3],""

        WhileLoop 3

            rtf_error% = @RTF("LoadRTF",rtf_box&[&loop],"RTF-Test_" + @str$(&loop) + ".rtf")
            Case rtf_error% : @messagebox("RTF-Fehler : "+@str$(rtf_error%),"FEHLER BEIM LADEN, Datei : "+ @str$(&loop),64)
            Clear rtf_error%

        EndWhile

    EndIf

EndWhile

end
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.12.2008  
 




Dieter
Zornow
Das ganze hat nichts mit der Freigabe zu tun, RTF() hat ein
Problem mit leeren RTF-File. Es wird ja auch immer die 3. leere File
angemeckert.
Ich habe mal zuerst die File erzeugt,
Das Programm dann beendet und einfach die vorher erzeugten File eingelesen.
Der Fehler kam genauso.

Habe dann mit einem anderen Programm die 3. leere File geladen etwas geschrieben,
aber das neu geschriebene kann man auch hier nicht abspeichern.
Also kann man mit Profanmitteln eine leere bereits abgespeicherte RTF-File nicht neu
beschreiben.
Das Problem scheint aber schon seit der undokumentierten Call() zu bestehen, nur dass
damals eine Fehlermeldung kam. In RTF() kommt keine Fehlermeldung mehr aber das Problem
ist nicht behoben

Als workaround kannst du folgendes verwenden.

case gettext$(rtf_box[&loop]) = "":settext rtf_box&[&loop]," "

Wenn in allen 3 File etwas steht, arbeitet dein Programm ohne Fehlermeldung.

Man kann von einem grundsätzlichen BUG in RTF() oder im Richedit ausgehen
Mit Wordpad geht es aber ohne Probleme und das verwendet doch bestimmt ebenfalls
ein Richedit.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
06.12.2008  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.454 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema hat 2 subscriber:

Dieter Zornow (1x)
E.T. (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie