| |
|
|
E.T. | Folgende Situation:
Wenn mittels @RTF("LoadRTF"... una zuvor erzeugte, vacío rtf-Expediente geladen se, se esta después de el Laden no otra vez freigegeben, a el Programa termina. Dies tritt en el Interpreter y el fertigen exe en.
Um el a veranschaulichen, Por favor, Yo, el folgenden Ver código fuente a starten y: 1. en el Button 1. El 3 Boxen en 3 Datein speichern a clic ___Dann voluntad el RichEdits jeweils (sin Fehler) en un Expediente geschrieben. 2. en el Button 2. El erzeugten 3 Datein neu einlesen a clic ___Hier se entonces Fehler:6?? zurückgegeben
Wenn Yo nun otra vez en el Button 1. ... klicke (auch, si yo ahora en Box 3 algo reinschreibe), erhalte Yo, el Fehler 32. Das heist, el Expediente es todavía geöffnet !! Das puede ser bastante ligeramente nachvollziehen, si uno el Expediente RTF-Test_3.rtf (si el Prog todavía se ejecuta) en z.B. Word öffnet y hay en Guardar klickt. Se puede auch versuchen, en todavía laufendem Prog el 3 erzeugten rtf-Datein a löschen, en ersten y zweiten klappt el, en dritten se verweigert. In diesem Zusammenhang me está auch aufgefallen, el una Borrar en el betreffende Expediente kein %ioresult setzt (así bin Yo sólo en él gekommen, el el Expediente todavía geöffnet es). Interessant es auch, el el Explorer kein Attribut "schreibgeschützt" en dieser Expediente anzeigt.
Hier veces mein Test-Code, Yo hoffe, Yo tener mich verständlich genug ausgedrückt: KompilierenMarcaSeparaciónDeclare 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 todo ha nichts con el Freigabe a tun, RTF() ha una Problema con leeren RTF-Archivos. Lo se en efecto siempre el 3. vacío Expediente angemeckert. Yo habe veces zuerst el Archivos producido, Das Programa entonces final y simplemente el vorher erzeugten Archivos eingelesen. Der Fehler kam genauso.
Posesiones entonces con un otro Programa el 3. vacío Expediente geladen algo geschrieben, aber el neu geschriebene puede ser auch hier no abspeichern. Also puede ser con Profanmitteln una vacío ya abgespeicherte RTF-Expediente no neu beschreiben. Das Problema scheint aber ya seit el undokumentierten Call() a bestehen, sólo dass damals una Fehlermeldung kam. In RTF() kommt no Fehlermeldung mehr aber el problema es no Fijo
Als workaround kannst du folgendes uso.
caso gettext$(rtf_box[&loop]) = "":settext rtf_box&[&loop]," "
Wenn en allen 3 Archivos algo es, arbeitet dein Programa sin Fehlermeldung.
Se puede de una grundsätzlichen BUG en RTF() o Richedit ausgehen Mit Wordpad es aber sin Problemas y el verwendet doch determinado ebenfalls una 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 ▲ |
|
|
|