Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Manfred, > > Du hast in Deinen Routinen ein paar Fehler. > Der bedeutenste liegt hier:<code> > string msg50s[4]; //5 zeilen a 30zeichen text > ... > string msg100s[4]; //5 zeilen a 30zeichen text > </code> > Du schreibst "5 Zeilen". Definiert hast Du aber nur 4. > Das ist der Grund für das Stehenbleiben. > Du greifst auf ein jeweils fünftes Element zu, welches garnicht existiert > Es werden dann Speicherbereiche überschrieben, welche nichtmehr > zu dem definierten Array gehören. > > Das nächste ist ein fehlendes Semikolon hinter <code>m_param.msg100s[i]=""</code>, was > der Compiler eigentlich bemängeln sollte: > <code>for i = 0 ... 4 > {m_param.msg50s[i]="";m_param.msg100s[i]=""} > </code> > > MfG André H. > > > > Hallo cc2net Gemeinde, > > > > ich habe hier ein etwas seltsames Problem: > > > > Wenn man versucht zwei String Array in einer Schleife zu löschen, > > bleibt die C-Controll Station hängen! > > Löscht man - nur - das zweite String Array nicht in einer schleife, sondern einzeln, > > funktioniert alles. > > Das Problem tritt nicht nur in der Initialisierung auf, sondern auch in anderen Programm Modulen. > > > > Das Programm ist in mehrere Module aufgeteilt. > > 1. Modul alle globalen Variablen und Konst. > > 2. alle globalen Funktionen > > 3. Initialisierung > > 4. pc-ausgabe über hwcom > > . > > . > > usw. > > > > > > > > im 1. Modul: m_param > > . > > . > > . > > > > <code> > > //m_pc > > int status00; //zeit & Temp normale Ausgabe > > int status01; //zeit & sonst. > > int msg50; //System Init > > string msg50s[4]; //5 zeilen a 30zeichen text > > int msg100; //fehler > > string msg100s[4]; //5 zeilen a 30zeichen text > > int msg_ok; //hwcom frei > > int pc_com_ausg[10]; //fehler - grund der Ausgabe zum PC > > . > > . > > . > > .</code> > > usw. > > > > Die beiden String Array werden Initialisiert > > > > ------------------------------------------------------------------------ > > hier sollen die beiden String Array gelöscht werden: > > > > Modul m_init > > > > 1. Versuch > > > > for i = 0 ... 4 > > {m_param.msg50s[i]="";m_param.msg100s[i]=""} > > oder > > > > for i = 0 ... 4 > > {str.clear (m_param.msg50s[i]);str.clear (m_param.msg100s[i])} > > > > nach der 2.ten Schleife, c-comtroll steht (getestet mit LED ein/aus) > > > > ........................................................................ > > 2. Versuch > > > > > > for i = 0 ... 4 str.clear (m_param.msg50s[i]); > > for i = 0 ... 4 str.clear (m_param.msg100s[i]); > > > > oder > > > > for i = 0 ... 4 m_param.msg50s[i]=""; > > for i = 0 ... 4 m_param.msg100s[i]=""; > > > > gleiche Reaktion wie vorher! > > > > ........................................................................ > > 3. versuch > > > > for i = 0 ... 4 str.clear (m_param.msg50s[i]); > > str.clear (m_param.msg100s[0]); > > str.clear (m_param.msg100s[1]); > > str.clear (m_param.msg100s[2]); > > str.clear (m_param.msg100s[3]); > > str.clear (m_param.msg100s[4]); > > . > > . > > . > > usw. > > > > mit diesem Programm läuft die C-Controll ganz normal weiter!! > > ........................................................................ > > > > In weiteren Modulen tritt das gleich Problem auf. Die String Variablen werden ausgegeben, und anschließend gelöscht. > > Bei der Stringausgabe in einer Schleife über hwcom zum PC werden teilweise > > falsche Zeichen oder zu viele Zeichen ausgegeben. > > > > Das Programm funktioniert mit dieser Konstruktion soweit, aber das ist keine saubere Programmierung. > > Außerdem bleibt die Logik irgendwo auf der Strecke. > > > > Vielleicht hatte jemand so ein ähnliches Problem, und kann mir helfen > > > > Manfred > > > >