Suche Algorithmus
-
Hallo ich habe eine Datei in der folgendes steht (alles hintereinander nur zur besseren anschauung umformatiert)
## Xs1000;Ys1000;EA0! // Nr1;xP11;yP12;Tp0;AE0;BzE_1;TD0;PnE_1;NE00000000;NA00000000! // Nr2;xP11;yP21;Tp0;AE0;BzE_2;TD0;PnE_2;NE00000000;NA00000000! // Nr3;xP22;yP11;Tp6;AE2;Bz;TD0;PnAND;NE00000000;NA00000000! // Nr4;xP20;yP40;Tp6;AE2;Bz;TD0;PnAND;NE00000000;NA00000000! // Nr5;xP11;yP41;Tp0;AE0;BzE_3;TD0;PnE_3;NE00000000;NA00000000! // Nr6;xP12;yP50;Tp0;AE0;BzE_4;TD0;PnE_4;NE00000000;NA00000000! // Nr7;xP32;yP24;Tp8;AE2;Bz;TD0;PnXOR;NE00000000;NA00000000! // Nr8;xP46;yP29;Tp1;AE1;BzA_1;TD0;PnA_1;NE00000000;NA00000000! || Nr1;AP2;vBYA6;bBXB4;PV0! ''19,52;20,50;! || Nr2;AP2;vBYA5;bBXA4;PV0! ''18,43;20,44;! || Nr3;AP2;vBYA2;bBXB3;PV0! ''18,23;22,21;! || Nr4;AP2;vBYA1;bBXA3;PV0! ''18,14;22,15;! || Nr5;AP2;vBYA3;bBXA7;PV0! ''29,18;32,28;! || Nr6;AP2;vBYA4;bBXB7;PV0! ''27,47;32,34;! || Nr7;AP2;vBYA7;bBXA8;PV0! ''39,31;46,31;!
zur Zeit lese ich die Zeile Segmentweise aus und gebe diese Informationen in einen Puffer dies habe ich so realisiert
// Segmentweise die Daten ausschneiden while(Segmentausschneiden(Hauptpuffer,puffer2)) { // Zuerst unterscheiden, um welchen Abschnitt es sich handelt AktuellerSegmentTyp = keinen; if (SucheString(&puffer2[0],TEXT("##"),&WertPos)) AktuellerSegmentTyp = Infodaten; if (SucheString(&puffer2[0],TEXT("//"),&WertPos)) AktuellerSegmentTyp = Blockdaten; if (SucheString(&puffer2[0],TEXT("||"),&WertPos)) AktuellerSegmentTyp = Verbindung; if (SucheString(&puffer2[0],TEXT("''"),&WertPos)) AktuellerSegmentTyp = Verbindungspunkte; switch (AktuellerSegmentTyp) {
Nun folgenden Problem ich möchte Wissen Wie oft PnE_x und wie oft PnA_x vorkommt.
In diesen Bsp 4*PnE_x und 1xPnA_x.
(PnE_1...Pne_x sind eingänge und PnA_1....PnA_X Anzahl der Ausgänge)Wie kann ich es schaffen das mir wie in diesen Bsp.: 4 Eingänge und 1 Ausgang vorhanden ist. (ausgegeben wird)
Hoffe ihr könnt mir helfen
Gruß Holzverleih
-
Such doch einfach im Puffer nach der Zeichenfolge "PnA_" bzw. "PnE_" und lass einen Zähler mitlaufen. Es gibt glaube ich auch eine Funktion, die gleich die Anzahl der gesuchten Strings ausspuckt (-> msdn).