PDA

View Full Version : frage zum vergleichen von 2 array


Тš†røý¢r
7th July 2002, 18:40
ich müsste einen puffer auf ein bestimmten wert prüfen, aber dummerweise ändern sich 2 stellen davon ständig.

kennt jemand eine möglichkeit diese chararray, möglichst in c++, zu vergleichen?

bsp. "xxyyxxxxyyxxxx" es sollten nur die stellen wo ein x vergleichen werden weil der immer konstant ist, y ist immer verschieden und darf daher nicht mit verglichen werden.

kennt jemand eine lösung die möglichst wenig cpu zeit beansprucht?

Тš†røý¢r
8th July 2002, 23:37
kann mir den keiner weiter helfen?

arbeite gerade an meinem radar, das wahrscheinlich auch user id (wofür ich zwar noch keine verwendung gefunden hab, seitdem fernhandel nicht mehr geht (glaube ich)), user status (farbe) und den namen auslesen werden kann.

doch das alles kann ich nicht machen, wenn ich 2 char/bytearray miteinander vergleichen kann, die sich aber an 2 Stellen immer unterscheiden und der rest konstant ist

Progman
9th July 2002, 17:35
Oh, die User ID ist noch für einige andere Sachen nützlich :)

Wo liegt denn das Problem 2 Arrays miteinander zu vergleichen? Mußt doch nur die Elemente vergleichen...

Тš†røý¢r
10th July 2002, 17:34
habe es letztendlich auch so gemacht. ich dachte eher das es vielleicht ne funktion wie strcomp gäbe, mit der man das auch machen könnte.

für was kann man die userid noch benutzen? mal vom "markieren" abgesehen?

m59
10th July 2002, 19:50
Hi,
Ich hoffe ich hab die Sache richtig verstanden deshalb wiederhol ich nochmal wie ichs meine:
Du hast 2 Arrays
array1: xxyyxxxxyyxxxx array2: xxyyxxxxyyxxxx

Bei diesen beiden Arrays willst du jeweils die x nicht die y Werte vergleichen.
So ich hoffe bis hier hin hab ich alles richtig geschnallt und jetzt die Lösung für den Sachverhalt in c++, du findest hier aber nur den reinen vergleich der beiden arrays:

for (i=0;i<14;i++)
{
if ((i==3)&&(i==4)&&(i==9)&&(i==10))
{
}
else
{
if (erster[i]==zweiter[i])
{
Anweisung1;
Anweisung2;
Anweisungx;
}
else
{
Anweisung1;
Anweisung2;
Anweisungx;
}
}
}


Wie du siehst ist das eine einfache for Schleife. Sie wird so oft durchlaufen wie das Array Elemente hat, also in deinem fall 14 mal (xxyyxxxxyyxxxx). In der if Anweisung werden dann die Elemente ausgeschlossen die du nicht vergleichen willst also die Y Elemente. Man muss dabei beachten das der Array bei 0 Anfängt daher sollen die Elemente 3,4,9 und 10 nicht vergleichen werden.
In dem Else teil folgt eine weitere if Anweisung bei der die zu vergleichenden Arrays, also die x, vergleichen werden. Anschließend kannst du dann einfügen was passieren soll wenn sie gleich sind bzw. was passieren soll wenn sie nicht gleich sind...
m59@gmx.de
Bye

Progman
11th July 2002, 17:53
Das mit der User ID überlass ich erstmal deiner Fantasie.. du wirst sicher noch ein paar Ideen finden

Тš†røý¢r
11th July 2002, 21:51
danke für ... nichts? ;)

bis jetzt kann ich jeden falls die online userliste auswerten, auch wenn das managment noch nicht 100%ig läuft. kurze zeit läuft es syncron mit dem meridian "wer ist online" fenster, aber dann vergisst das teil ab und zu einige user die offline gingen zu löschen und selten (bis nie?) vergisst es mal einen user einzufügen wenn der on kommt.

versuche das auszumerzen, ehe ich weiter mache :)
da ich ohne eine korrekte "onlineuser" liste das radar nicht (korrekt) umstetzen kann :ermm:

Progman
12th July 2002, 13:03
ja, das ist ein altbekanntes Problem.. PKK hatte es auch.. CFM konnte es zwar besser aber auch nicht zu 100%

m59
12th July 2002, 15:16
Wo ist denn das größte Problem Destroyer? Ich bin leider in der Hinsicht nicht ganz im Saft aber wenn du in etwa sagst was du nicht gebacken bekommst, kann ich versuchen es hinzubasteln.
Erklärs aber ohne Spielbezug sondern nur mit Werten
bye

Тš†røý¢r
12th July 2002, 15:26
das ist doof. wie kann man es den minimieren? problem kennst ja, das die packete für offline gehen und das andere (was dazu führt das zufällig leute offline gehen) ziemlich gleich aussehen und praktisch nicht unterscheiden sind. frage mich nur wie das der client macht

kannst du mir wenigstes sagen ob es möglich ist ein "befehl" an den server zu schicken, damit der eine aktualisierte liste schickt? dann könnte mal alle 60-120 sek die liste aktualisieren lassen, um wenigstes so das problem möglichst gering zu halten?

Тš†røý¢r
13th July 2002, 04:23
das mit der liste hat sich geklärt. sieht so aus als ob die userliste nur beim einloggen und nach einer systemsicherung geschickt werden :ermm:

Progman
13th July 2002, 13:28
das ist richtig. Einen speziellen Befehl dafür gibts nicht