Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

seltsamme logik Kategorie: Programmierung (von Manfred - 19.04.2007 14:36)
Ich nutze:
C-Control II Station, OSOPT V3.0
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
.
.
.


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

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  



    Antwort schreiben


Antworten:

Re: seltsamme logik (von André H. - 20.04.2007 9:10)
    Re: seltsamme logik (von Manfred - 20.04.2007 11:34)
        Re: seltsamme logik (von André H. - 20.04.2007 20:40)