Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andre
Anmeldungsdatum: 06.09.2006 Beiträge: 47
|
Verfasst am: 09.09.2006, 17:31 Titel: Ne Weile Programmiert und nun läuft nichts mehr... |
|
|
Also ich habe eine ganze weile an ein Programm geschrieben. Nun läuft das Programm nicht mehr, sogar an stellen die schonmal gelaufen sind. Nun kommt sogar noch eine blöde Fehlermeldung (AUßerhalb des Indexes o.s.ä.).
Kann es sein das mein Programm zu Groß geworden ist oder das mein Rechner Probleme mit der Verarbeitung aller Variablen (ca. 80-90 variablen) hat?
Ich habe im Forum nur anlesen können, das man die Programme irgendwie vergrößern kann??? |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 09.09.2006, 20:22 Titel: |
|
|
was macht /AH? _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 09.09.2006, 20:46 Titel: |
|
|
Das gibt dir extrem viel Speicher für deine Variablen usw.
Funktioniert aber nur bei QuickBasic...
Aber ich glaube nicht, dass QBasic mit 80-90 Variablen überfordert ist, wenn sie nicht gerade 1000 Zeichen lang sind
Ich denke eher, dass dein Code von vorne bis hinten nicht mehr OK ist*...
Das passiert mir auch gelegentlich...
Ich würde den Code an deiner Stelle so lang (und oft) durchkämmen, bis du einen (oder mehrere) Fehler findest.
Dabei können gelegentliche Pausen, auch etwas länger, sehr zum Erfolg beitragen
Du kannst natürlich alles nochmal neu schreiben, was auch sehr viel nützen kann, da du dann mit einem klaren Kopf an die Sache gehst, und somit
wahrscheinlich keinen Quick&Dirty Code verursachen kannst...
*Würde wahrscheinlich daran liegen, dass du zu lange programmiert hast, und somit kaum noch konzentriert warst.
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.09.2006, 21:03 Titel: |
|
|
wenn man keine ahnung hat....
AH lässt datenfelder dynmaisch werden, wodurch sie auch größer als 64k werden können, was sosnt nicht möglich ist. strings dürfen aber nach wie vor nur 32k haben. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 09.09.2006, 21:07 Titel: |
|
|
Jojo hat Folgendes geschrieben: | wenn man keine ahnung hat....
AH lässt datenfelder dynmaisch werden, wodurch sie auch größer als 64k werden können, was sosnt nicht möglich ist. strings dürfen aber nach wie vor nur 32k haben. |
Das ist doch so ziemlich das gleiche...
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.09.2006, 21:10 Titel: |
|
|
datenfelder sind für dich variablend?
back2topic:
qbasic ist von 90 variablen nicht überfordert....
aber wenn dein programm "AUßerhalb des Indexes" meldet, dann ist folgendes passiert:
Code: |
dim datenfeld (1 to 20, 2 to 40) 'datenfeld mit 2 dimensionen
datenfeld (40,20) = 1
|
sieht du den fehler? du schreibst auf das feld 40,20, wobei das datenfeld nur 20x40 groß ist, und nicht 40x20!
der fehler, den qb nun ausspuckt, heißt "außerhalb des indexes". _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 10.09.2006, 11:55 Titel: |
|
|
Elvis schrieb: Zitat: | Das [der Befehlszeilen-Parameter /AH] gibt dir extrem viel Speicher für deine Variablen usw. ... |
Falsch... der Parameter /AH wirkt sich nur auf die Maximalgröße bestimmter dynamischer Datenfelder aus.
Jojo schrieb: Zitat: | AH lässt datenfelder dynmaisch werden, ... |
Falsch - das bewirkt der Meta-Befehl $DYNAMIC.
Die Verwendung des Parameters /AH schließt die Dimensionierung statischer Datenfelder nicht aus.
Verwirrt's doch bitte nicht die Anfänger ... verweist sie in solchen Fällen einfach auf die sehr gute QB-Hilfe:
Zitat: | /AH Ermöglicht es dynamischen Feldern, die Datensätze, Zeichenketten fester Länge oder numerischen Daten enthalten, jeweils größer als 64K zu sein. |
_________________ lG
pinkpanther  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 10.09.2006, 13:49 Titel: |
|
|
alfonsospringer hat Folgendes geschrieben: | was macht /AH? |
Fachlich korrekte Antwort: Es aktiviert das sog. Large Memory Model (spezielles Speicherverwaltungsmodell bei der Intel 8088/8086-Prozessorarchitektur).
Siehe dazu auch
http://de.wikipedia.org/wiki/Segmentierung_%28Speicherverwaltung%29#Intels_x86er_im_Real-Mode
Praktische Auswirkung für den QB45-Programmierer: Es können Felder grösser 64 KB (=über mehrere Segmente erstreckend) dimensioniert werden. Der Preis (heute im Zeitalter der GHz-Taktfrequenzen und grossen RAM-Speicherriegel eher hintergründig): Variablenzugriff ist etwas langsamer als beim Tiny-Speichermodell (alles in einem Segment) und es braucht noch ein paar Bytes mehr für die Speicherverwaltung. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Andre
Anmeldungsdatum: 06.09.2006 Beiträge: 47
|
Verfasst am: 10.09.2006, 16:03 Titel: |
|
|
Also, habe das gleiche Programm auf FB programmiert und da läuft es einwandfrei
Jetzt ist mein Prozessor auch nicht mehr dauernd von QB zu 100% ausgelastet, jetzt kann ich wieder musik hören und habe auch keine Probleme mehr mit großen zahlen...
Aber trotzdem Danke für die Antworten  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 10.09.2006, 17:05 Titel: |
|
|
Andre hat Folgendes geschrieben: | Also, habe das gleiche Programm auf FB programmiert und da läuft es einwandfrei |
Dafür gibt es demfall eine einfache Erklärung: FreeBasic läuft als waschechter 32-Bitter mit linearer Adressierung, d.h. die komplizierte Segment/Offset-Speicherverwaltung entfällt dort komplett und Du musst dort daher auf keinerlei 64 KB-Grenzen mehr Rücksicht nehmen.
Siehe sonst
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BASICunterWindows95_98_NT.html
d.h. unter QB ist man selbst bei Einbau von 1 GB RAM im PC immer noch der 640 KB-Grenze unterstellt. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|