Problem mit For-Schleife
-
Hallo ihrs,
ich hab derzeit praktikum und programmiere mit VC++ 2008 von MS ein DB-Programm mit Tcp-client/Server.
nun soll das DataSet vom server in Strings umgewandelt werden, diese dann in byte-arrauy und ab in den Stream damit. das meiste wird durch for-schleifen realisiert. jedoch ist nun das problem, dass die for-schleifen übersprungen werden, alles andere klappt.
hier der Code:
for (int a = 1; a == anzahlrows; a++) { DataRow^ row = zwischentable->Rows[a]; for (rowspalte = 2; rowspalte == 9; rowspalte++) { data = nullptr; if (row[rowspalte]->ToString() != "") { data = row[rowspalte]->ToString(); array<Byte>^ msg = System::Text::Encoding::ASCII->GetBytes(data); array<Byte>^ msgantw = nullptr; stream->Write(msg, 0, msg->Length); bool erfolg = false; while (erfolg == false) { Int32 bytes = stream->Read(msgantw, 0, msgantw->Length); String^ dataantw = System::Text::Encoding::ASCII->GetString(msgantw, 0, bytes); if (dataantw == "Empfangen") { erfolg = true; } } } else { data = "leer"; array<Byte>^ msg = System::Text::Encoding::ASCII->GetBytes(data); array<Byte>^ msgantw2 = nullptr; stream->Write(msg, 0, msg->Length); bool erfolg2 = false; while (erfolg2 = false) { Int32 bytes = stream->Read(msgantw2, 0, msgantw2->Length); String^ dataantw2 = System::Text::Encoding::ASCII->GetString(msgantw2, 0, bytes); if (dataantw2 == "Empfangen") { erfolg2 = true; } } } } dssent = dssent + 1; }alle vorher gesetzten variablen die in dem Code-teil hier nicht deklariert sind, wurden im programm weiter oden deklariert und initialisiert.
hoffe ihr erkennt evtl den fehler...
mfg Poppkins
-
Versuch mal
[cpp]
for (int a = 1; a <= anzahlrows; a++)
//setze die Schleife fort, solange a kleiner-gleich anzahlrows ist![/cpp]
Das gleiche gilt natürlich auch für die anderen for-Schleifen.
Außerdem fängt man bei solchen Geschichten üblicherweise bei Null an zu zählen.
EDIT: Hmm, die cpp-Tags wollen heute irgendwie nicht...

EDIT: Ach ja, was du machst, nennt sich C++/CLI, dafür gibt's ein eigenes Board hier. Die nächste Frage also besser da stellen.

-
ok, danke, ich denk nächstes mal dran. habs mal geändert, neues problem:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei ServerDB.Form1.timer1_Tick(Object sender, EventArgs e) in (Pfad)form1.h:Zeile 336.betreffende Zeile:
Int32 bytes = stream->Read(msgantw, 0, msgantw->Length);und ich hab diesen fehler zigmal gehabt und kp wie ich ihn gelöst hab

-
Hört sich an, als wäre eines deiner Objekte (stream, msgantw?) gar nicht instanziiert worden. Ist aus deinem Code nicht ersichtlich. Und ich bin eben kein C++/CLI-Experte. Falls hier nix weiter kommt, stell diese neue Frage besser im passenden Forum:
-
mach ich, t-dem danke für die schnelle antwort

-
Poppkins schrieb:
t-dem
Lustig, auf was für Abkürzungen die Leute alles kommen...
