amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Search [ - Search - New posts - Register - Login - ]

First << 17 18 19 20 21 -22- 23 24 25 26 27 >> Last Search results: 2779 hits (30 per page)
Ralf27   User

2008-01-13, 15:30 h

[ - Direct link - ]
topic: MaxonBasic: Variablentypen
Board: Programmierung

Zja, ich mach mich jetzt zum ersten mal in höheren Zahlenebenen auf, die höher als 2GB sind. Seltsamerweise kann MB auch ULONG mit bis zu 4GB, aber nicht immer?!?. Mit # geht es immer, aber das sind Zahlen mit doppelter Genauigkeit. Jetzt kenne ich mich damit weniger aus und im Handbuch zu MaxonBasic finde ich wenig Infos über die Zahlenbereiche der einzelnen Typen. Interger ist klar, das benutze ich ja auch in 99,9% der Fälle(genauer: 16Bit-Integer). Als weiteres Long Integer (32Bit, bzw. eigentlich nur Longs).

Mit # (doppelter Genauigkeit) komme ich weiter, aber kann ich das auch benutzen?
Ich will hier auch keine Ratespiele veranstalten und Mutmaßungen anstrengen.

Ich will für Bildateien die Einsprungpunkte berechnen (Bildgröße bis 4GB) und dann mit kleinen Sprüngen zwischen denn Read() mit Seek() und OFFSET_CURRENT weiterspringen. Das ganze lief bis jetzt mit & und ist eigentlich nur bis 2GB sicher. Es soll aber jetzt auch bis 4GB laufen.

Die spätere Umrechnung für Seek() (nur LONG) hab ich schon eingebaut.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-13, 13:51 h

[ - Direct link - ]
topic: A1200 serielle Schnittstelle Geschwindigkeit
Board: Amiga, AmigaOS 4

Zitat:
Original von ylf:
Die Frage nach dem richtigen Device stellt sich eigentlich nicht, weil der Amiga selbst mit seinen Browsern der Flaschenhals ist beim Surfen im Internet.

bye, ylf


Und wie die sich stellt: Wenn das Device unötig Rechenleistung verbrät, dann verbleibt weniger für das System, bzw. dem Browser.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-13, 13:44 h

[ - Direct link - ]
topic: Seek-Problem
Board: Programmierung

Hm, schon ärgerlich mit MBasic, das es kein ULONG kennt, denn sonst wäre es einfach gewesen: Wenn der Wert größer als 2^31 ist, dann einmal ein Seek mit 2^31 und dann nochmal eins mit dem Rest und gut ist. So muß ich das ganze nochmal etwas erweitern.

EDIT:
MB scheint wohl doch ULONG zu kennen. Aber:
code:
a&=2&^32
PRINT 2&^32
PRINT a&


Liefert unterschiedliche Werte. Echt irre. :nuke:
Wenn hinter der 32 auch ein & steht, dann geht es auch auf 4GB hoch. Das dürfte dann wohl ULONG sein.

EDIT2:
Selbst wenn beide 32 auf 32& geändert werden, ist es unterschiedlich. Es gibt nicht mal eine Fehlermeldung a la Overflow (obwohl eingeschaltet) und liefert unterschiedliche Werte. Aber ok, im Programm werden die Werte ja nicht ausgegeben und die Berechnungen Variablen zugewiesen. Somit geht das.

MB hat wohl immer einen Schwinger im Peto...

--
http://www.alternativercomputerclub.de.vu

[ Dieser Beitrag wurde von Ralf27 am 13.01.2008 um 13:54 Uhr geändert. ]

[ Dieser Beitrag wurde von Ralf27 am 13.01.2008 um 13:57 Uhr geändert. ]
 
Ralf27   User

2008-01-13, 12:38 h

[ - Direct link - ]
topic: A1200 serielle Schnittstelle Geschwindigkeit
Board: Amiga, AmigaOS 4

Es kommt auch darauf an, was für ein Programm man benutzt. Mit Twin geht es z.b. bis 330.000 Baud! Ich hab damit oft Daten übertragen und es wirklich so schnell. Es ist sogar so, das die 330.000 Baud gar nicht angegeben wurden (bis 290.000 baud stand in der Beschreibung), aber bis 330.000 Baud lief es stabil zwischen zwei Amigas.

Laut Doc reicht z.b. ein 12,5MHz AT-PC aus bis 20.000 Bytes(!) pro Sekunde.

Dann kommt es noch auf das Kabel drauf an. entweder einfaches 3wire, oder ein schnelles 7-wire. dann geht die Post ab und damals konnte sogar damit ein Standard-PC, der eigentlich nur bis 115kbaud nochmal extrem erhöhen (Express)

Mit Twin kann man zwischen Amigas oder zwischen Amiga und Pc oder zwischen PCs Daten übertragen. Ich kenne nichts schnelleres für die serielle Schnittstelle. Achja, es geht nur über die eingebaute serielle, wenn ich mich recht entsinne.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-11, 21:22 h

[ - Direct link - ]
topic: Erfahrungen mit "nichttragenden Wänden"
Board: Get a Life

Zitat:
Original von Archeon:
1. Hast du bereist eine Decke mit Ständerwerk abgehängt ?( Altbauwohnungen meist der Fall)
2. Was für ein Fußboden hast du? Laminat,Dielenboden,Fließestrich mit einfachen Teppich oder PVC-Belag.

Ist ein Neubau, bzw. Rohbau.
Zitat:
3. Soll es Schalldämmend sein (Kinder wegen) oder nur als Raumtrenner.
4. Ist es eine Mietwohnung oder eine Eigentumswohnung (Haus)
5. Wieviel Geld willst du reinstecken...
Gruß Archeon


Eigentumswohnung. Die Wände sind alle in der Wohnung.
Das mit dem Geld ist so eine Sache(sollte natürlich nicht zu teuer sein), aber erst mal eine möglichst gute Lösung für dieses Problem.

Das mit dem Schallschutz ist mehr ein Goodie, bzw. wäre natürlich nicht schlecht.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-11, 19:26 h

[ - Direct link - ]
topic: Seek-Problem
Board: Programmierung

Zitat:
Original von Holger:
Zitat:
Original von tboeckel:
Theoretisch ja, praktisch nein. Selbst wenn man sich stückweise an die Daten oberhalb von 4GB rantasten könnte, dann scheitert es am Filesystem, das keine Dateien >4GB handhaben kann.

Selbst wenn das Dateisystem Dateien >4GB handhaben kann, gibt es noch das Problem, dass das alte Seek() laut Spezifikation die resultierende Position zurückgibt. Somit kann man auch nicht stückweise vorwärts springen, da beim Überschreiten der 4GB-Grenze die Rückgabewerte ungültig werden würden.

Ich hab noch nie denn Rückgabewert von Seek() benötigt. Dann dürfte gerade das doch eigentlich kein Problem sein?
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-11, 07:56 h

[ - Direct link - ]
topic: Seek-Problem
Board: Programmierung

Ok, dann bleibt nur der zweite Weg, wie ich es mir schon gedacht hatte.

Es dürften dann aber auch mehr als 4GB möglich sein, wenn man bei Seek nicht zu große Sprünge (<2^31) macht. Seh ich das richtig?
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-10, 22:39 h

[ - Direct link - ]
topic: Infos an Commidities senden
Board: Programmierung

Danke, ich muß mir das bald nochmal genauer ansehn. Bin da gerade auf andere Probleme gestoßen, sodas ich das gerade etwas liegen lasse. Aber ich komme bald wieder drauf zurück. :D
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-10, 22:17 h

[ - Direct link - ]
topic: Erfahrungen mit "nichttragenden Wänden"
Board: Get a Life

Es geht darum welche Wandart (KS, Ytong, Trockenbau, etc) man am besten für nichttragende Wände in einem Wohnhaus nehmen könnte. Teilweise sind diese Wände nicht übereinander, also könnte es hier ein Gewichtsproblem geben.

Von Ytong wurde mir schon abgeraten, KS ist trotz 11,5er eigentlich noch recht schwer und Trockenbau (Schall?). Alles hat ja irgendwie Vor- und Nachteile. Was würdet ihr denn nehmen, bzw. Empfehlen?
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-10, 22:13 h

[ - Direct link - ]
topic: Seek-Problem
Board: Programmierung

Ich hab da ein kleines Problem mit Seek(), auch in Verbindung mit MaxonBasic:

Leider kennt MaxonBasic kein ULONG, sondern nur vorzeichenbehaftete Longs. Das heißt, bis 2GB gehts mit Seek(), dann ist Feierabend mit dem direkten springen.

Jetzt aber folgendes:
Wenn man eine Adresse ausrechnet und man kommt über die 2^31, dann gibt MBasic ja eine negative Zahl an, weil MBasic dies ja Vorzeichenbehaftet interpretiert. Wenn man diese Zahl dann Seek() übergibt, dann interpretiert Seek() doch diesen Wert als ULONG, oder seh ich das jetzt falsch? Also kann es mir erst mal egal sein, das MBasic kein ULONG kennt, solange nicht diese Zahl weiter verarbeite mit z.b. Plus, Minus oder sonst was. Oder kennt Seek() bei OFFSET_BEGINNING keine ULONGS?

Und was anderes:
Wenn ich das richtig verstanden habe, dann geht das "normale" Seek() der dos.lib nur bis 4GB, wenn man OFFSET_BEGINNING benutzt, bzw. kann es nur maximal 4GB springen. Wenn eine Datei größer als 4GB ist, kann man dann dennoch mit Seek() mit OFFSET_CURRENT in der Datei weiterspringen, wenn der Wert klein genug ist (< 2^31, da hier Vorzeichenbehaftet (vor +, zurück - ))?

Ich gehe vermutlich eh dann denn zweiten Weg.

Interessenhalber:
Was ist besser, wenn ich in einer Datei von einem Punkt zum anderen springen möchte und diese sind weit entfernt (einige MB): Mit OFFSET_CURRENT oder OFFSET_BEGINNING, oder ist es egal (Datei kleiner 2GB)?
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-07, 20:10 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Zitat:
Original von Holger:
Zitat:
Original von Ralf27:
Kurz nochmal zu SELECT CASE etc.: Das ausführbare Programm wird dadurch seltsamerweise größer.

Im Vergleich zu was?
IF THEN

Ist echt Paradox.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-07, 20:09 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Zitat:
Original von MaikG:
>Meinst Du nicht umgekehrt?

Nein, schon so wie ich schrieb.
Ralf sagt ja shiften ist langsamer als Division in MB.


Shiften ist nicht langsamer, aber man muß es aber Klammern, wenn es nicht alleine steht. Und ruck zuck ist es gleich schnell oder gar langsamer. Es kommt darauf an, wie komplex das ganze wird. Gerade beim BMPReader hab ich da so einiges getestet, weil es wirklich recht langsam ist. An einigen stellen Shifte ich, an deren hab ich es wieder gelassen.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-06, 23:08 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Kurz nochmal zu SELECT CASE etc.: Das ausführbare Programm wird dadurch seltsamerweise größer. MaxonBasic hat so einige Ungereimtheiten unter der Haube. Auch wenn man Speedtests macht, dann bekommt man einige überraschungen zu Gesicht. Ist echt schade...
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-05, 09:50 h

[ - Direct link - ]
topic: User aus Kleinanzeigen gesucht
Board: Forum und Interna

"-1" Bewertungen... Hm, Ebay wird mir immer unbeliebter.

Aber wie kommen die auf "-1" Bewertungen?!?
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-04, 21:26 h

[ - Direct link - ]
topic: HTML: png
Board: Programmierung

Stimmt, also FXPaint macht bei PNG mehr auf 16, 24Bit, wärend PPaint hier 8Bit benutzt. Da die Bilder nur ein paar Farben haben, ist hier PPaint einfach besser, da es 8Bit nutzt.
Mit FXPaint kann man wohl keine 8Bit PNG schreiben... ?!?
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-02, 20:42 h

[ - Direct link - ]
topic: HTML: png
Board: Programmierung

Hm, wie mir aufgefallen ist gibt es erhebliche Unterschiede in der Dateigröße je nachdem mit welchem Programm man die PNG umwandelt. Mit PPaint hab ich die mit Abstand kleinsten PNG erhalten, mit FXPaint die größten.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-02, 19:01 h

[ - Direct link - ]
topic: HTML: png
Board: Programmierung

Zitat:
Original von Robin:
@Ralf27:

Aktuelle Browser erkennen PNG auch wenn du sie
auf GIF enden laesst.
Die aktuellen Browser sind auch in der Lage PNG richtig darzustellen.
Leider ist der immer noch weit verbreitete InternetExplorer 6 da nicht
ganz so gut drin. Besonders wenn du für Firmen Webseiten entwickelst
solltest du versuchen wenn du mit tranparenten PNGs arbeitest
diese auf einem System ala Windows98/Win2000 zu testen.


Es hat schon was mit der Firmenpolitik von MS zu tun, wenn IE da Probleme mit einem freien Format hat. MS versucht ja alles um freie Format, egal welcher Art, irgendwie vom Markt zu drängen um dann eigene, geschlossene Formate zu platzieren.
Mit so einer Marktmacht wie MS kann man schon recht viel machen und das nicht immer zum guten, es aber gut aussehn lassen. :nuke:
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-02, 17:14 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Leider war es auch so, das der Rastportpointer nicht immer NULL hatte(eigentlich nur am Anfang des Programms), sondern dann auf einen Rastport verweisen konnte, der nicht mehr existent war, sprich: dessen Fenster geschlossen wurde. Genauer getippt: Ich hab da einen Rastport vom falschen Fenster angegeben.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-02, 17:12 h

[ - Direct link - ]
topic: HTML: png
Board: Programmierung

Also mit PNG braucht man wirklich weniger Platz. Ich hab jetzt einige Bilder ausgetauscht. Werd ich Schritt für Schritt so die meisten GIFs konvertieren.


Interessenhalber:
Wenn ich jetzt einfach z.b. Test.gif von GIF nach PNG konvertieren und diesen unter dem gleichen Namen Test.gif speichern würde, würde damit der Browser auch klar kommen? Bzw. nur interessenhalber. Die konvertierten Bilder hab ich mit .png enden lassen.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-02, 13:01 h

[ - Direct link - ]
topic: HTML: png
Board: Programmierung

Ich hab da mal eine kleine Frage zu PNG mit WebBrowsern:

PNG scheint ja die Bilder besser zu komprimieren als GIF, aber kommen die Browser auf den unterschiedlichen Plattformen damit auch so klar wie mit GIF?

Ich bin da am überlegen meine Homepage so langsam auf PNG um zu stellen, da es weniger Platz braucht und die Seite dann wohl mit langsamen Zugang auch schneller angezeigt werden kann.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-01, 23:27 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Wegen der bmap für die BSDSocket.lib. Ich hab eben mal die bmap für die Lib auf meine Homepage gestellt.

http://home.pages.at/a1260/EigenePage/Dateien/BSDSocket.lha

Vorsicht, sind 509Bytes! :D
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-01, 22:43 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Ja, definitiv, das war der Fehler: Ein ungültiger Pointer auf ein RastPort der eventuell nicht mehr existieren konnte.
Bzw. einfach einen falschen Pointer gesetzt.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-01, 18:13 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Zitat:
BSD und codeset.
Die CodeSet hab ich vor ein paar Tagen ins Aminet hoch geladen, die BSD-Inc aber noch nicht, wie ich eben gesehn habe. Ich hab da aber bis jetzt nur die bmap generiert. Die .hb und .hc ist aber recht komplex. Das hab ich noch nicht gemacht und vermutlich werde ich das auch nicht machen, weil ich das vermutlich auch nicht hinbekommen werde.
Zitat:
>Ich glaube, ich habe denn Fehler gefunden: Eine Variable hab ich
>falsch übergeben-> RastPort konnte dann NULL sein bzw. ins Nirvana
>zeigen. Ich muß das ganze nochmal testen.

Und ebend das hättest du mittels eines Enforcer rausgefunden.
Da hätte dann sowas wie "Long Read from 00000000" gestanden und
schon wüsstest du das irgenwo was nicht da ist.

Wenn ich es verstehen würde, dann ganz bestimmt. :) Du scheinst da mehr zu machen als ich.
Zitat:
>Ich Prog ja nur noch zum Spaß und das auch nicht am Stück und nur
>wenn ich Zeit und Lust hab. Deswegen bin ich auch nicht so gut wie
>es eigentlich sein sollte.

Hat ja nichts mit gut oder schlecht zu tun, nur mit Ordentlich...
Früher hatte ich auch immer ein übelstes Chaos, am liebsten hab
ich gar keine Unterprogramme verwendet, select case auch nicht usw.

Äh, das hat ganz bestimmt was damit zu tun. Das mit ordenlich ist auch eine Auslegungssache. Wenn man halt mehr programmiert, dann kommt man auch tiefer in die Materie rein und dann wird man automatisch besser, bzw. der Code wird besser und auch lesbarer.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-01, 17:47 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Ich finde, es ist immer wieder Merkwürdig, wie MBasic mit z.b. SUBs wohl intern umgeht: Der scheint wohl keine Unterroutinen aufzurufen, sondern viel mehr werden die Routinen immer an die entsprechende Stelle im Programm gesetzt, auch mehrfach.

So werden wohl einfach Programm als ausführbares Programm auch recht schnell recht groß. Ok, ein paar KB mehr oder weniger ist ja heute egal, wenn man sich die Festplatten so ansieht. Ist aber dennoch recht schade.

PS: Mir ist schon klar das der MBasic-Compiler en Witz ist. :(
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-01, 16:58 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Ich glaube, ich habe denn Fehler gefunden: Eine Variable hab ich falsch übergeben-> RastPort konnte dann NULL sein bzw. ins Nirvana zeigen. Ich muß das ganze nochmal testen.

PS: Hab das Programm nochmal überarbeitet und es ist jetzt einige KB Quellcode kürzer, bzw. übersichtlicher.

Ich Prog ja nur noch zum Spaß und das auch nicht am Stück und nur wenn ich Zeit und Lust hab. Deswegen bin ich auch nicht so gut wie es eigentlich sein sollte.

--
http://www.alternativercomputerclub.de.vu

[ Dieser Beitrag wurde von Ralf27 am 01.01.2008 um 17:35 Uhr geändert. ]
 
Ralf27   User

2008-01-01, 16:30 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Zitat:
Original von MaikG:
>Es könnte auch sein das es am IDCMP_MOUSEMOVE liegen könnte,
>denn das hab ich bis jetzt auch noch nie eingesetzt und das
>liefert auch ein ganz schönes Datengewitter.

Ich sag mal deine Programmierweise ist immernoch etwas
unübersichtlich. Aber Mousemove sieht okay aus.

Der Code müßte mal aufgeräumt werden, das ist schon klar. Aber MouseMove bau ich am besten wieder aus und mach das ganze etwas einfacher. Wird wohl das beste sein.
Zitat:
Wenn du den HeapDynamic erhöhst, sagen wir auf 3000 und
die hänger nehmen ab - dann hast du irgendwo, dem System
einen String übergeben der nicht verschoben werden darf.
Beim Fenster kennst du das ja schon, kann aber bei vielen
Libraryfunktionen so sein.

Sudoku ist ja um welten größer und komplexeri und da hab ich keine Probleme in der Hinsicht. Und das wundert mich schon etwas.
Zitat:
Benutzt du Enforcer?
Ne, hab ich nicht.
Zitat:
Ich würde das Prog ja mal starten hab aber einige Includes
dafür nicht.

Welche fehlen dir denn? Die müßten ja im Aminet liegen.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2008-01-01, 14:57 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Ich habe FRE(0) bei MaxonBasic noch nie eingesetzt, bzw. nicht in einer Hauptschleife. Ist schon interesant was da raus kommt. Der Basic-Heap sinkt ab bis fast auf null und dann geht der wieder rauf auf ca. 64kb. Und das wieder und wieder, wenn ich die einzelnen Punkte auf dem Fenster überfliege. Ist schon interesant.

Aber denn Fehler finde ich leider auch nicht.

Es könnte auch sein das es am IDCMP_MOUSEMOVE liegen könnte, denn das hab ich bis jetzt auch noch nie eingesetzt und das liefert auch ein ganz schönes Datengewitter.

Jedenfalls friert das Programm auch wieder ein, auch wenn ich alle Waits mit REM ausmarkiert habe.

Ich sollte wohl wirklich langsam alles rausschmeisen bis es läuft. Vermutlich mit IDCMP_MOUSEMOVE beginnend.
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2007-12-31, 17:40 h

[ - Direct link - ]
topic: a1 selber bauen...
Board: Amiga, AmigaOS 4

Zitat:
Original von Barthel:
warum lacht ihr alle? ich hab dem wirklich geschrieben!!!


Wenn du die letzten Jahren Amigageschichte dir ansehen würdest, dann würdest du vermutlich auch einen Lachkrampf bekommen.

Du kannst ihm ruhige schreiben, aber bis jetzt hat unser Mr.Zerstörer alle Versuche unterbunden irgendetwas zum Amiga zu machen. Bzw. viel eher arbeitet er daran als noch möglichst viel aus dem Trümmerhaufen Amiga herraus zu ziehen. Wenn du ihm ein paar Millionen rüberschiebst, dann darf du vielleicht denn Kolben schwingen. :) Ansonst kannst du davon ausgehn, das er dir eher Schwierigkeiten machen wird. :nuke:
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2007-12-31, 17:25 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Zitat:
Original von RhoSigma:
Also das hört sich ganz nach dem gleichen Problem an, das ich vor ca. 2 Jahren mit meinem MakeHTMLMap Projekt hatte, da blieb das Programm auch manchmal mittendrin sang und klanglos hängen ohne Fehler ohne Absturtz, nur das Proggi eben.

Ist schon irgendwie seltsam, aber vor ca. 2-3 Jahren hab ich auch so ein Programm geschrieben, auch in MaxonBasic. Es war recht gut (für meine Verhältnisse), hab es aber leider durch meinen Festplattencrash damals verloren, sonst wäre es auch auf meiner Page.
Zitat:
Des Rätsels Lösung war, daß sich der Garbage Collector von MaxonBasic in bestimmten Situationen offensichtlich festfährt, da du in deinem Programm auch einige Arrays benutzt und Strings sowiso, und diese auch in diversen Schleifen immer wieder mal verändert werden, wodurch ja immer wieder neue temporäre Objekte auf dem Heapspeicher von Basic erzeugt werden (sprich diesen langsam aber sicher aufbrauchen), könnte dieses Problem bei dir auftauchen.
Das Programm benutzt eigentlich recht wenige Strings, etc. Wenn ich da an Sudoku denke, da ist das Programm wesentlich länger.
Ich denk einfach, das es daran nicht liegt, bzw. bin mir eigentlich nur zu 99% sicher, aber nicht ganz. Aber ich werde das auch mal testen.
Zitat:
Um dies mal zu überprüfen, solltest du mal einen PRINT FRE(0) in deine Hauptschleife setzen. Da du nun aber keine Basicfenster mehr
verwendest, müstest du dazu zeitweise eben doch mal wieder eins öffnen, der Rest sollte ja trotzdem weiter in deinem Programmfenster landen. Der Befehl gibt nun bei jedem Schleifendurchlauf die größe des noch freien Heapspeichers aus, dabei wirst du feststellen, daß dieser mehr oder weniger abnimmt, dann sprunghaft mal wieder größer wird und wieder abnimmt etc.. Der sprunghafte Anstieg zeigt, daß gerade eine Garbage Collection (Müllsammlung) stattgefunden hat bzw. daß die HEAPDYNAMIC Funktion einen neuen Block alloziert hat. Der
Punkt ist nun folgender, wenn dein Programm einfriert, nachdem der letzte ausgegebene Wert sich nahe gegen Null genährt hat und eigentlich wieder ein entsprechender Anstieg zu erwarten wäre, dieser aber nicht kommt, dann wirds wohl tatsächlich am Garbage Collector liegen, und dann kannst du in deinem eigenen Code auch lange und vergeblich nach einem Fehler suchen ;(

Das liest sich sehr interesant und ist auch sehr interesant. Denn mit dieser Garbage Collector hab ich auch so meine Probleme. Wenn ich z.b. Fensternamen direkt angeben, bzw. als Zeichenkette direkt im Quellcode, dann kann es passieren, das auf einmal Datenmüll im Fenternamen erscheint. Deswegen muß ich leider auch dann extra dafür Speicher vom System anfordern um die Namen dorthin zu schreiben.
Zitat:
Wenn das nun zutrifft, dann kannst du mal versuchen das Programm mit einer höheren HEAPDYNAMIC Einstellung zu kompilieren, wenn das nichts hilft bzw. den Hänger nur eine Weile hinauszögert dann füge einfach den folgenden Codeblock in deine Hauptschleife mit ein, seitdem ich das bei meinem Programm getan habe, läuft es einwandfrei. Meine Standardwerte für die Compilereinstellungen stehen oben drüber:

code:
' alte Heapgröße = 0KB   /  dyn. Heapgröße = 128KB
' mindest. Stack = 4096B /  mathem. Stack  = 256B

    '-------------------------------------
    ' workaround Garbage Collector hangup
    '-------------------------------------
    IF FRE(0)<500 THEN                               ' Platz auf BASIC-Heap < 500 Bytes ??
        gcTmp$=""                                        ' dann temporären $ vom letzen mal löschen
        tmp&=FRE("")                                     ' und Garbage Collection erzwingen
        IF FRE(0)<500 THEN                               ' immer noch weniger 500 Bytes ??
            WHILE FRE(0)<60000&                              ' dann temp-$ wieder vergrößern,
                gcTmp$=gcTmp$+STRING$(1000,CHR$(0))          ' bis die HEAPDYNAMIC Funktion
            WEND                                             ' einen neuen Block alloziert.
            IF FRE(-1)>262144& THEN                          ' wenn genug freier Systemspeicher,
                POKEL SYSTAB+44,(PEEKL(SYSTAB+44)+65536&)    ' dann Limit für nächste GaCol erhöhen
            ELSE
                tmp&=SetIoErr&(103&)                     ' sonst OutOfMemory
                ERROR 7                                  ' kannste mit ON ERROR GOTO über eine
            END IF                                       ' Aufräumfunktion sauber zum ProgEnde
        END IF                                           ' leiten
    END IF
    '-------------------------------------


P.S. Probleme mit Compileroptionen bemerkt ?? - dann guck dir auch mal mein MBPrefs (Aminet) an...


Ist wirklich ein sehr interesantes Programm.
Ja, das mit den Compileroptionen, bzw. die Verschiebung im Menu ist mir auch schon aufgefallen. Ich gebe aber die Optionen immer alle im Quellcode selbst an, bzw. schalt ich immer alles ab was ich nicht brauch und schalt nur das an, was ich benötige. Das geht halt am besten im Quellcode.

MBasic hat aber auch noch einige andere kleine Besonderheiten, das z.b. Shiften langsamer sein kann als eine Ganzzahldivision, wenn der Ausdruck auch nur etwas komplizierter ist. Der Compiler baut da einfach viel zu viel drum herum, bzw. könnte man da bestimmt noch viel rausholen. Aber ich vermute mal, das Maxon da wohl nicht mehr viel machen wird...
--
http://www.alternativercomputerclub.de.vu
 
Ralf27   User

2007-12-31, 00:39 h

[ - Direct link - ]
topic: Fehlersuche
Board: Programmierung

Zitat:
Original von thomas:
@Ralf27:

Zitat:
Ich hab was gelesen vom "sicheren schliesen", aber das verursacht bei mir einen Absturz (?)

Zitat:
REM Forbid
REM msg&=1
REM Port&=PEEKL(win&+UserPort%)
REM WHILE msg&
REM msg&=GetMsg&(Port&)
REM IF msg& THEN ReplyMsg msg&
REM WEND
REM POKEL win&+UserPort%,0
REM junk=ModifyIDCMP(win&,0)
REM Permit



Sorry, aber *das* hat nichts mit CloseWindowSafely zu tun. Das offenbart nur, daß du nicht verstanden hast, wie CloseWindowSafely funktioniert und wofür es gut ist.

Du brauchst das nicht. CloseWindowSafely braucht man nur, wenn man den gleichen Message-Port für alle Fenster benutzt. Du hast aber für jedes Fenster einen eigenen Port.

Den Absturz bekommst du, weil du nicht abfragst, ob überhaupt ein Port da ist. Und beim Schnließen von testwin, welches keinen IDCMP hat, ist Port NULL und führt bei GetMsg(Port) zum Absturz.

In der Tat hab ich das nicht verstanden, bzw. hatte ich das auch noch in keinem Programm benutzt und als ich halt mal bei CloseWindow() dieses CloseWindowSafely gesehn habe, hab ich es einfach mal versucht.
Ich war mir da auch relativ (aber nicht zu 100%) sicher, das es damit nix zu tun hat. Deswegen auch in REMs.
Mir ist aber auch klar das Vermutungen beim Programmieren nicht das Gelbe vom Ei sind. Ist eher eine Verzweiflungstat...
Zitat:
Zitat:
Es könnte auch am CloseWindow liegen, aber das ist leider auch nur eine Vermutung.

Wenn du eine konkrete Vermutung hast, dann läßt die sich doch ganz einfach bestätigen: mach vor dem CloseWindow ein Print und danach auch und wenn nur das erste rauskommt, dann hängt's am CloseWindow. Wenn nicht, dann nicht.

Finde doch erstmal heraus, wo es hängt. Dann kannst du dir eine Lösung überlegen.

Genau daran hängt es, das ich das nicht finde. Ich bin aber gerade dabei etwas denn Code zu überarbeiten, bzw. zusammenfassen, etc.

Irgendwo in dem Programm muß sowas wie ein Illegaler Zugriff statt finden.
--
http://www.alternativercomputerclub.de.vu
 
 
First << 17 18 19 20 21 -22- 23 24 25 26 27 >> Last Search results: 2779 hits (30 per page)

Search terms
keywords      username
Search options
Only search these boards
   match whole words only
show only titles
show all results

.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.