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 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 >