Xbase Version 2.0.710
Moderator: Moderatoren
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Xbase Version 2.0.710
Hallo zusammen
ich habe vor einigen Tagen das Update auf 2.0.710 installiert und da änderungen an Programmen anstanden diese auch ohne allzu grosses Testen an Kunden ausgeliefert. Die Probleme bei den Kunden blieben dann auch nicht aus.
Nach längerem Suchen habe ich den ersten Fehler gefunden, die Function fsize( nHandle ) gibt bei gültigem Filehandle nach Zufallsprinzip entweder die korrekte Filegrösse oder 0 zurück.
Das Problem kann ich eindeutig der Version 2.0.710 zuordnen:
Programm erstellt mit 2.0.685 --> ok
Programm erstellt mit 2.0.710 --> Probleme
Kann das jemand bestätigen?
Cu Carlo
ich habe vor einigen Tagen das Update auf 2.0.710 installiert und da änderungen an Programmen anstanden diese auch ohne allzu grosses Testen an Kunden ausgeliefert. Die Probleme bei den Kunden blieben dann auch nicht aus.
Nach längerem Suchen habe ich den ersten Fehler gefunden, die Function fsize( nHandle ) gibt bei gültigem Filehandle nach Zufallsprinzip entweder die korrekte Filegrösse oder 0 zurück.
Das Problem kann ich eindeutig der Version 2.0.710 zuordnen:
Programm erstellt mit 2.0.685 --> ok
Programm erstellt mit 2.0.710 --> Probleme
Kann das jemand bestätigen?
Cu Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Ich lasse das Programm (nach Update) gerade laufen:
bis jetzt keine Fehler
Code: Alles auswählen
PROCEDURE Main
LOCAL nH, cTxt, nLen, x,nCount:=0, cFile := "test.bin"
/* we use the ansi charset by default */
SET CHARSET TO ANSI
? "Test fsize()"
?
cTxt := "Dies ist ein Test"
nLen := len(cTxt)
? "Ausgabe: ",cTxt, " sind ",nLen," Bytes"
erase (cFile)
nH := fcreate(cFile)
? "fWrite:",fWrite(nH,cTxt)," Bytes geschrieben"
? "fSize: ",fSize(nH)
? "Erstellt, Länge testen"
fclose(nH)
inkey(3)
nH := fOpen(cFile)
DO WHILE inkey(.2) <> 27
nCount++
x := fSize(nH)
? time(),"fSize: ",x,"Versuch:",nCount
IF nLen <> x
? "*** FEHLER: ",x,"statt",nLen
ENDIF
ENDDO
/* $TODO: place your application code here */
RETURN
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
15.434 fehlerfreie Versuche. Kann es sein dass Win 7 ohne die Reg-Einträge aktiv ist. Hört sich für mich nach defekten Metadaten an.
Oder ab und zu hat das OS Probleme auf die Datei zuzugreifen ... obwohl die offen ist (Netzwerkprobleme ?)
Oder ab und zu hat das OS Probleme auf die Datei zuzugreifen ... obwohl die offen ist (Netzwerkprobleme ?)
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Xbase Version 2.0.710
Hi
danke für deine Versuche.
Metadaten kann ausgeschlossen werden.
Der Effekt ist auf allen PC's Win7/Win10 und auch auf Laufwerk C: der selbe.
Das Problem lässt sich auch in einem kleinen Testprogramm nachvollziehen.
Die betroffenen Programmzeilen liefen in den vergangenen Jahren problemlos. Mehrere 100'000 Durchgänge.
(Kopieren einer L&L Projektdatei in ein TMP-Verzeichnis um diese via DOM für den einzelnen Ausdruck anzupassen)
Im Dateianhang ist mein Testprogramm, Projektdatei und Screenshots unter 2.00.685 = OK, 2.00.710 nur Fehler.
Merkwürdig ist dass wenn das Test-Programm im Debugger (xppdbg.exe test.exe) im Einzelschrittmodus (F8) ausgeführt wird der Fehler NICHT auftritt.
Cu Carlo
danke für deine Versuche.
Metadaten kann ausgeschlossen werden.
Der Effekt ist auf allen PC's Win7/Win10 und auch auf Laufwerk C: der selbe.
Das Problem lässt sich auch in einem kleinen Testprogramm nachvollziehen.
Die betroffenen Programmzeilen liefen in den vergangenen Jahren problemlos. Mehrere 100'000 Durchgänge.
(Kopieren einer L&L Projektdatei in ein TMP-Verzeichnis um diese via DOM für den einzelnen Ausdruck anzupassen)
Im Dateianhang ist mein Testprogramm, Projektdatei und Screenshots unter 2.00.685 = OK, 2.00.710 nur Fehler.
Merkwürdig ist dass wenn das Test-Programm im Debugger (xppdbg.exe test.exe) im Einzelschrittmodus (F8) ausgeführt wird der Fehler NICHT auftritt.
Cu Carlo
- Dateianhänge
-
- fsizeProb.zip
- (32.24 KiB) 427-mal heruntergeladen
Valar Morghulis
Gruss Carlo
Gruss Carlo
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
mit deinem Testprogramm tritt bei mit ab 2.00.703 der Fehler auch auf. Solltest du gleich an Alaska melden.
Warum und wo kann ich jetzt nicht erkennen. Mit dem Debugger ging es soweit ohne Fehler.
Warum und wo kann ich jetzt nicht erkennen. Mit dem Debugger ging es soweit ohne Fehler.
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Xbase Version 2.0.710
Hallo Hubert
danke für deinen Test.
In meiner Hauptanwendung wird die Funktion fsize() in 69 PRG Dateien ein/mehrmals verwendet. .....
Ich bin vorerst zurück zu 2.00.685 alles andere scheint mir für mich und meine Kunden grob fahrlässig.
Es scheint sich um ein von Alaska neu eingebautes Problem bezw. Feature an elementaler Stelle zu handeln.
Sind die Xbase++ Updates eigentlich nur "experimentel" oder getraut sich jemand diese auch "produktiv" einzusetzten?
So zu arbeiten macht "Freude", ich verzichte jetzt auf die Auswahl eines Smilies ...... oder eines weiteren Kommentars.
Alaska, quo vadis ?????
Cu Carlo
danke für deinen Test.
In meiner Hauptanwendung wird die Funktion fsize() in 69 PRG Dateien ein/mehrmals verwendet. .....
Ich bin vorerst zurück zu 2.00.685 alles andere scheint mir für mich und meine Kunden grob fahrlässig.
Es scheint sich um ein von Alaska neu eingebautes Problem bezw. Feature an elementaler Stelle zu handeln.
Sind die Xbase++ Updates eigentlich nur "experimentel" oder getraut sich jemand diese auch "produktiv" einzusetzten?
So zu arbeiten macht "Freude", ich verzichte jetzt auf die Auswahl eines Smilies ...... oder eines weiteren Kommentars.
Alaska, quo vadis ?????
Cu Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
einige Fehler wurden beseitigt, andere kommen dazu, du solltest Alaska den Fehler melden.
Auf die Antwort sind wir gespannt.
Auf die Antwort sind wir gespannt.
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Hallo Carlo,
zu Deiner Frage: Ja, es gibt viele Entwickler, die die 2.0 produktiv einsetzen. Ich bin einer davon. Denn insgesamt ist die 2.0 sehr stabil und schnell.
Aber Hubert hat schon recht: Es gibt immer noch "Kinderkrankheiten" (ich hab z. B. kürzlich ein schweres Speicherleck gefunden, ausgerechnet in dem Bereich, über den ich beim Forentreffen gespochen hatte). Das was Verschlimmbessert wurde im Laufe der 2.0 hatte ich allerdings bislang noch nicht. In der Beta hatte ich öfters mit diversen Problemen zu kämpfen, die mal liefen und mal nicht mehr. Aber das schien mir vorbei zu sein.
Wie Hubert schrieb: Testroutine inkl. Fehlerbeschreibeung an Alaska schicken. Der beste Weg, daß das schnellsten korrigiert wird.
Jan
zu Deiner Frage: Ja, es gibt viele Entwickler, die die 2.0 produktiv einsetzen. Ich bin einer davon. Denn insgesamt ist die 2.0 sehr stabil und schnell.
Aber Hubert hat schon recht: Es gibt immer noch "Kinderkrankheiten" (ich hab z. B. kürzlich ein schweres Speicherleck gefunden, ausgerechnet in dem Bereich, über den ich beim Forentreffen gespochen hatte). Das was Verschlimmbessert wurde im Laufe der 2.0 hatte ich allerdings bislang noch nicht. In der Beta hatte ich öfters mit diversen Problemen zu kämpfen, die mal liefen und mal nicht mehr. Aber das schien mir vorbei zu sein.
Wie Hubert schrieb: Testroutine inkl. Fehlerbeschreibeung an Alaska schicken. Der beste Weg, daß das schnellsten korrigiert wird.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Xbase Version 2.0.710
Danke für eure Antworten.
Wenn die Suche nach Fehlern (die wir vorher gar nicht hatten) nicht so viel der eh schon knappen Zeit verschlingen würde und sich die eigenen Kunden nicht am Telefon nerven weil das Programm plötzlich mit Fehlern an bisher problemlosen Stellen abstürzt, könnte man vielleicht ja sogar darüber Lachen....
Mit "Produktiv Einsatz" habe ich natürlich die Updates gemeint, nicht die 2.00 als ganzes.
Ist das Speicherleck noch offen bzw. wo ist dieses?
Gemeldet hab ich es jetzt.
Eine Antwort ist auch schon da, ein Ausschnitt: "We love Xbase++, and you?"
Cu Carlo
Wenn die Suche nach Fehlern (die wir vorher gar nicht hatten) nicht so viel der eh schon knappen Zeit verschlingen würde und sich die eigenen Kunden nicht am Telefon nerven weil das Programm plötzlich mit Fehlern an bisher problemlosen Stellen abstürzt, könnte man vielleicht ja sogar darüber Lachen....
Mit "Produktiv Einsatz" habe ich natürlich die Updates gemeint, nicht die 2.00 als ganzes.
Ist das Speicherleck noch offen bzw. wo ist dieses?
Gemeldet hab ich es jetzt.
Eine Antwort ist auch schon da, ein Ausschnitt: "We love Xbase++, and you?"
Cu Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Manfred
- Foren-Administrator
- Beiträge: 21211
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Xbase Version 2.0.710
gib als Antwort: "We love to entertain you"
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Hallo Carlo,
wenn Alaska ein neues Update herausbringt, installiere ich mir das immer sofort. Die Kunden bekommen das dann mit meinem nächsten Udpate. Was auch bedeutet, das ich dann schon einiges damit gearbeitet und getestet habe. Ein Rollback mußte ich bislang noch nie machen.
Der Fehler liegt in XbpHtmlWindow. Beim Destroyen eines Objektes wird der Speicher nicht mehr freigegeben, und irgendwann scheppert das dann mit einem internen Fehler. Alaska hat dafür den PDR 6796 aufgemacht, und zugesagt, daß das bis zum nächsten Udpate erledigt sei. Ich muß dazu aber auch ganz ehrlich sagen daß das nicht ganz so gravierend ist für die meisten Entwickler. Mir war das nur aufgefallen weil ich in einem Kundenprojekt exzessiv neue HTML-Objekte anlege. Hunderte im Laufe des Tages. Und das wird dann irgendwann doch zu viel.
Jan
wenn Alaska ein neues Update herausbringt, installiere ich mir das immer sofort. Die Kunden bekommen das dann mit meinem nächsten Udpate. Was auch bedeutet, das ich dann schon einiges damit gearbeitet und getestet habe. Ein Rollback mußte ich bislang noch nie machen.
Der Fehler liegt in XbpHtmlWindow. Beim Destroyen eines Objektes wird der Speicher nicht mehr freigegeben, und irgendwann scheppert das dann mit einem internen Fehler. Alaska hat dafür den PDR 6796 aufgemacht, und zugesagt, daß das bis zum nächsten Udpate erledigt sei. Ich muß dazu aber auch ganz ehrlich sagen daß das nicht ganz so gravierend ist für die meisten Entwickler. Mir war das nur aufgefallen weil ich in einem Kundenprojekt exzessiv neue HTML-Objekte anlege. Hunderte im Laufe des Tages. Und das wird dann irgendwann doch zu viel.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Vor einiger Zeit habe ich mich mit Java beschäftigt, was mir da positiv aufviel war der Entwicklungsprozess der in dem Buch beschrieben wurde (nicht Java speziefisch).
Wenn die eine neue Funktion gemacht haben, wurde sofort eine Testroutine erstellt, die einmal aufgerufen ALLE gewünschten und unerwünschten
Eingaben mit den Ausgaben vergliechen hat und durch alle Teile der Funktion durchlief. Wenn man das zuende denkt,
kann man eine solche Testdatei mit seinen Funktionen beim neuen Release aufrufen und automatisch die Zuverlässigkeit der erwarteten Ergebnisse sicherstellen oder Fehler erkennen.
Ich bin noch nicht soweit alle meine Funktionen so zu testen, aber ich will das für meine allgemeinen Funktionen auf jeden Fall machen und in Anwendungen wäre es nicht schlecht.
Es ist einfach leichtfertig darauf zu vertrauen, dass die anderen keine Fehler machen die Seiteneffekte auslösen können.
Wenn die eine neue Funktion gemacht haben, wurde sofort eine Testroutine erstellt, die einmal aufgerufen ALLE gewünschten und unerwünschten
Eingaben mit den Ausgaben vergliechen hat und durch alle Teile der Funktion durchlief. Wenn man das zuende denkt,
kann man eine solche Testdatei mit seinen Funktionen beim neuen Release aufrufen und automatisch die Zuverlässigkeit der erwarteten Ergebnisse sicherstellen oder Fehler erkennen.
Ich bin noch nicht soweit alle meine Funktionen so zu testen, aber ich will das für meine allgemeinen Funktionen auf jeden Fall machen und in Anwendungen wäre es nicht schlecht.
Es ist einfach leichtfertig darauf zu vertrauen, dass die anderen keine Fehler machen die Seiteneffekte auslösen können.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Ich habe jetzt mal mein Testprogramm von oben ohne Debugger mit 2.00.703 kompiliert und laufen lassen.
Bis jetzt ohne Fehler ... eventuell liegt der Seiteneffekt auch in einer anderen Zeile oder dem Variablen Typ !
Bis jetzt ohne Fehler ... eventuell liegt der Seiteneffekt auch in einer anderen Zeile oder dem Variablen Typ !
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Xbase Version 2.0.710
@Manfred
@Jan
mit dem letzten Update hatte ich wirklich kein Glück und mein "Fehlerkredit" bei den Kunden vorerst aufgebraucht. Was hättest du den ohne Rollback gemacht? Mir ist keine Alternative eingefallen. Glücklicherweise ging alles per RDP so war es leichter auszubaden....
Oh zum Glück, das "XbpHtmlWindow" Problem trifft mich nicht. Ich verwende es nicht. HTML verwende ich nur für Webanwendungen mit xb2net. Danke für die Erklährung.
@Hubert
Auf den ersten Blick scheint dies Interessant, ich hatte damit mal begonnen es dann wieder aufgegeben da der Erlös in keinem Verhältnis zum Aufwand stand. Vorallem aber auch viele Probleme damit nicht erkannt wurden. Ich habe meine Funktionen in Gruppen und Verzeichnissen geordnet. In jedem gibts ein Test-Programm dies hift beim Entwickeln der Funktionen sehr gut .... Am weitesten und meisten hat mir ein Buch das ich den USA mal erhalten habe gebracht es handete sich dabei um "Erfolg und Zeitersparnis durch Regeln bei der Programmierung". Leider ist es bei einem Umzug untergegangen. Diese Regeln versuchte ich mir anzueignen und arbeite noch immer so. So z.B. max. Fehlerpüfung des Compilers verwenden, eine Funktion hat nur ein Return und ist kurz, Plausibilitästtest, Variablennamen System usw. es ist jetzt schwierig ein ganzen Buch mal so kurz zu beschreiben.
Cu Carlo
Ja genau!gib als Antwort: "We love to entertain you"
@Jan
mit dem letzten Update hatte ich wirklich kein Glück und mein "Fehlerkredit" bei den Kunden vorerst aufgebraucht. Was hättest du den ohne Rollback gemacht? Mir ist keine Alternative eingefallen. Glücklicherweise ging alles per RDP so war es leichter auszubaden....
Oh zum Glück, das "XbpHtmlWindow" Problem trifft mich nicht. Ich verwende es nicht. HTML verwende ich nur für Webanwendungen mit xb2net. Danke für die Erklährung.
@Hubert
Auf den ersten Blick scheint dies Interessant, ich hatte damit mal begonnen es dann wieder aufgegeben da der Erlös in keinem Verhältnis zum Aufwand stand. Vorallem aber auch viele Probleme damit nicht erkannt wurden. Ich habe meine Funktionen in Gruppen und Verzeichnissen geordnet. In jedem gibts ein Test-Programm dies hift beim Entwickeln der Funktionen sehr gut .... Am weitesten und meisten hat mir ein Buch das ich den USA mal erhalten habe gebracht es handete sich dabei um "Erfolg und Zeitersparnis durch Regeln bei der Programmierung". Leider ist es bei einem Umzug untergegangen. Diese Regeln versuchte ich mir anzueignen und arbeite noch immer so. So z.B. max. Fehlerpüfung des Compilers verwenden, eine Funktion hat nur ein Return und ist kurz, Plausibilitästtest, Variablennamen System usw. es ist jetzt schwierig ein ganzen Buch mal so kurz zu beschreiben.
Cu Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Carlo,
mit der 2.0 kann man HTML für GUI-Elemente verwenden. Entweder bestehende Xbparts per CSS und HTML "ownerdrawen", oder komplett eigene GUI-Parts bauen. Dafür benutze ich das.
Das Rollback geht ja zum Glück relativ einfach in Xbase++. Ich habe das bislang auch noch nie benutzt. Auch nicht in diesem Fall, denn der Fehler ist in der 2.0 schon von Anfang an drin, nicht erst mit der 710 dazu gekommen. In dem beschrieben Speicherproblem habe ich ein wenig Daten umstrukturiert. Damit muß ich nicht mehr ganz so oft die HTML-Elemente destroyen. Damit scheppert das nicht mehr so oft wie früher. Aber irgendwann eben dann doch. Daher warten wir auf das Update mit der Fehlerbehebung von Alaska und leben bis dahin damit, daß das Programm ab und an neu gestartet werden muß.
Jan
mit der 2.0 kann man HTML für GUI-Elemente verwenden. Entweder bestehende Xbparts per CSS und HTML "ownerdrawen", oder komplett eigene GUI-Parts bauen. Dafür benutze ich das.
Das Rollback geht ja zum Glück relativ einfach in Xbase++. Ich habe das bislang auch noch nie benutzt. Auch nicht in diesem Fall, denn der Fehler ist in der 2.0 schon von Anfang an drin, nicht erst mit der 710 dazu gekommen. In dem beschrieben Speicherproblem habe ich ein wenig Daten umstrukturiert. Damit muß ich nicht mehr ganz so oft die HTML-Elemente destroyen. Damit scheppert das nicht mehr so oft wie früher. Aber irgendwann eben dann doch. Daher warten wir auf das Update mit der Fehlerbehebung von Alaska und leben bis dahin damit, daß das Programm ab und an neu gestartet werden muß.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Xbase Version 2.0.710
@Hubert
welches Programm meinst du jetzt? Deins das ohne Fehler geht oder meins das nicht läuft?
In deinem Programm öffnest du ein Handle und fragst in einer Schlaufe fsize() ab. Also immer das bestehende und zuletzt geöffnete Handle
ich öffne Datei1 in Readonly+Shared als Handle1, erzeuge neue Datei als Handle2 und frage dann fsize( Handle1 ) ab.
Vielleicht ist das der Unterschied der zum Crash führt.
Cu Carlo
welches Programm meinst du jetzt? Deins das ohne Fehler geht oder meins das nicht läuft?
In deinem Programm öffnest du ein Handle und fragst in einer Schlaufe fsize() ab. Also immer das bestehende und zuletzt geöffnete Handle
ich öffne Datei1 in Readonly+Shared als Handle1, erzeuge neue Datei als Handle2 und frage dann fsize( Handle1 ) ab.
Vielleicht ist das der Unterschied der zum Crash führt.
Cu Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Ja mein Programm mit 2.00.703 ohne Debugger ... ich kann auch mal mehr Arbeit reinsetzen.
Ich baue das mal in mein Programm ein, wobei es mit locals keine Rolle spielen sollte.
Ich baue das mal in mein Programm ein, wobei es mit locals keine Rolle spielen sollte.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Ich habe mir mal dein Programm vorgenommen, um den Aufbau zu vereinfachen und Zwischenergebnisse anzuzeigen:
nun zeigt das Ergebnis sofort das Problem !
? "direkt lesen 1",fSize(nHandle1) stimmt immer
? "direkt lesen 2",fSize(nHandle1) stimmt NIE => FEHLER
? "direkt lesen 3",fSize(nHandle1) stimmt immer genau wie alle weiteren Zugriffe !
Warum auch immer, bisher war das nicht so und es ist ein eindeutiger Fehler des Compilers.
Code: Alles auswählen
#include "dll.ch"
#include "fileio.ch"
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
proc main
local cDFile, sName, nHandle1, nHandle2, a1, a2, nLen , cBuffer, nCount := 0
@ 0,0 clear
cDFile := MyGetTempPath() + "dest.lst"
sName := "testfile.lst"
cBuffer := space(200000)
nHandle1 := fcreate(sName)
fwrite(nHandle1,cBuffer)
fclose(nHandle1)
nHandle1 := nHandle2 := 0
? "erstellt " + version(1)+"."+version(2)+"."+version(3) + sName
? sName + " ---> " + cDFile
inkey(5)
do while .t.
nCount++
? "Durchlauf" , nCount
* do while ( nhandle1 := fopen(sName,FO_READ+FO_SHARED) ) <= 0
* enddo
* do while ( nhandle2 := fcreate(cDFile) ) <= 0
* enddo
nhandle1 := fopen(sName,FO_READ+FO_SHARED)
if empty(nHandle1)
? "Fehler Datei 1 konnte nicht geöffnet werden"
endif
? "direkt lesen 1",fSize(nHandle1)
nhandle2 := fcreate(cDFile)
if empty(nHandle2)
? "Fehler Datei 2 konnte nicht erstellt werden"
endif
? "direkt lesen 2",fSize(nHandle1)
? "direkt lesen 3",fSize(nHandle1)
nLen := fSize(nHandle1)
if nlen = 0
? "Fehler " + version(1)+"."+version(2)+"."+version(3) +" -> fsize() = 0 ",nHandle1,nLen
exit
else
? "OK " + version(1)+"."+version(2)+"."+version(3) +" -> " + str(nLen)
endif
cBuffer := space( nLen )
a1 := fread(nHandle1,@cBuffer,nLen)
a2 := fwrite(nHandle2,cBuffer,nLen)
fclose(nHandle1)
fclose(nHandle2)
nHandle1 := nHandle2 := 0
sleep(1)
enddo
? "warte auf Tastendruck"
inkey(10)
return
static FUNCTION MyGetTempPath()
LOCAL nBuffSize := 261
LOCAL sBuffer := Replicate(chr(0),261)
LOCAL ret_val := ""
GetTempPathA(nBuffsize, @sBuffer)
ret_val := left(sBuffer, at(chr(0), sBuffer) -1 )
return(ret_val)
DLLFUNCTION GetTempPathA( buffsize, @buffer ) USING STDCALL FROM KERNEL32.DLL
? "direkt lesen 1",fSize(nHandle1) stimmt immer
? "direkt lesen 2",fSize(nHandle1) stimmt NIE => FEHLER
? "direkt lesen 3",fSize(nHandle1) stimmt immer genau wie alle weiteren Zugriffe !
Warum auch immer, bisher war das nicht so und es ist ein eindeutiger Fehler des Compilers.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
und noch verwunderlicher ... wenn ich GUI=YES auf GUI=NO ändere, ändert sich das Verhalten und alle Zugriffe nach 1 schlagen fehl.
Da muss ein übler Bug drinn sein, mit der 1.90.355 (die 2.00.6ff hab ich zur Zeit nicht im Zugriff) stimmt es immer.
Da muss ein übler Bug drinn sein, mit der 1.90.355 (die 2.00.6ff hab ich zur Zeit nicht im Zugriff) stimmt es immer.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
und so sieht mein Programm aus, das den Fehler auch hat:
Code: Alles auswählen
#include "Common.ch"
/* This is our main procedure
*/
PROCEDURE Main
LOCAL nH, cTxt, nLen, x,nCount:=0, cFile := "test.bin",cFile2 := "ziel.bin"
/* we use the ansi charset by default */
SET CHARSET TO ANSI
? "Test fsize() ",version()+"."+version(3)
?
cTxt := "Dies ist ein Test"
nLen := len(cTxt)
? "Ausgabe: ",cTxt, " sind ",nLen," Bytes"
erase (cFile)
nH := fcreate(cFile)
? "fWrite:",fWrite(nH,cTxt)," Bytes geschrieben"
? "fSize: ",fSize(nH)
? "Erstellt, Länge testen"
fclose(nH)
inkey(3)
nH := fOpen(cFile)
IF empty(nH)
? cFile,"konnte nicht geöffnet werden"
inkey(2)
quit
ENDIF
nZ := fCreate(cFile2)
IF empty(nZ)
? cFile2,"konnte nicht erstellt werden"
inkey(2)
quit
ENDIF
DO WHILE inkey(1) <> 27
nCount++
x := fSize(nH)
? time(),"fSize: ",x,"Versuch:",nCount
IF nLen <> x
? "*** FEHLER: ",x,"statt",nLen
inkey(3)
exit
ENDIF
ENDDO
/* $TODO: place your application code here */
RETURN
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16536
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 113 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
Ganz dumme Idee:
Ändert sich das Verhalten, Hubert, wenn Du statt dieser Zeile
das so schreibst:
Viele Grüße,
Martin
Ändert sich das Verhalten, Hubert, wenn Du statt dieser Zeile
Code: Alles auswählen
nHandle1 := nHandle2 := 0
Code: Alles auswählen
nHandle1 := 0
nHandle2 := 0
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
in meinem Beispiel kommt das nicht vor, die Handels sollten auch verschieden sein, prüfe ich aber mal nach.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 68 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Xbase Version 2.0.710
geändert an beiden Stellen auf
ich lasse die Handles ausgeben und erhalte dann immer die gleichen Handlenummern, aber wechselweise ...
mit der 2.00.703 kommt das Ergebnis raus ( GUI=NO)
und GUI=YES liefert das:
Code: Alles auswählen
nHandle1 := 0
nHandle2 := 0
Code: Alles auswählen
direkt lesen 1 200000 1016 0
direkt lesen 2 200000 1016 1020
direkt lesen 3 200000 1016 1020
OK 1.90.355 -> 200000
Durchlauf 8
direkt lesen 1 200000 1020 0
direkt lesen 2 200000 1020 1016
direkt lesen 3 200000 1020 1016
OK 1.90.355 -> 200000
Durchlauf 9
direkt lesen 1 200000 1016 0 * hier ist nur eine Datei offen
direkt lesen 2 200000 1016 1020
direkt lesen 3 200000 1016 1020
OK 1.90.355 -> 200000
Durchlauf 10
direkt lesen 1 200000 1020 0
direkt lesen 2 200000 1020 1016
direkt lesen 3 200000 1020 1016
OK 1.90.355 -> 200000
Durchlauf 11
direkt lesen 1 200000 1016 0
direkt lesen 2 200000 1016 1020
direkt lesen 3 200000 1016 1020
OK 1.90.355 -> 200000
warte auf Tastendruck
Code: Alles auswählen
erstellt 2.00.703 testfile.lst
testfile.lst ---> dest.lst
Durchlauf 1
direkt lesen 1 200000 1068 0
direkt lesen 2 0 1068 1072
direkt lesen 3 0 1068 1072
Fehler 2.00.703 -> fsize() = 0 1068 0
warte auf Tastendruck
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Xbase Version 2.0.710
Danke Hubert für deine Test Ergebnisse. interessant was die Version 2.00.7xx macht ...
Frage : was passiert bei FSIZE(Filename) statt einem Handle ?
Frage : was passiert bei FSIZE(Filename) statt einem Handle ?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Xbase Version 2.0.710
hi,
ok es geht da um FSIZE(nHandle/cFilename) aber ich meine es allgemein.
ein "altes" COPY FILE (cSourceFile) TO (cTargetFile) würde ja reichen ...
leider bietet uns Alaska kein Interface zur Windows API "SHFileOperationA" an.
ShFile.ZIP (original mit BAP) findest du hier
http://www.xbaseforum.de/viewtopic.php? ... 59&p=50466
die ot4xb Version ( mit Structure ) hier
http://www.xbaseforum.de/viewtopic.php?f=27&t=8689
warum so viel Aufwand um eine Datei zu kopieren wie im Demo ?ramses hat geschrieben:Im Dateianhang ist mein Testprogramm, Projektdatei und Screenshots unter 2.00.685 = OK, 2.00.710 nur Fehler.
ok es geht da um FSIZE(nHandle/cFilename) aber ich meine es allgemein.
ein "altes" COPY FILE (cSourceFile) TO (cTargetFile) würde ja reichen ...
leider bietet uns Alaska kein Interface zur Windows API "SHFileOperationA" an.
ShFile.ZIP (original mit BAP) findest du hier
http://www.xbaseforum.de/viewtopic.php? ... 59&p=50466
die ot4xb Version ( mit Structure ) hier
http://www.xbaseforum.de/viewtopic.php?f=27&t=8689
gruss by OHR
Jimmy
Jimmy