Suchfunktion für Seriennummern!!!



  • Hallo Leute,

    Habe einen Hilferuf an euch ausgesendet bitte hilft mir!!!

    Ich möchte eine Suchfunktion von Seriennummern programmieren. Dabei sollte es möglich sein, dass die Seriennummer auch Asci Zeichen enthält. Die Suche sollte Nummerisch funktionieren und nicht Zeichen weise Vorgehen.

    Beispiele:

    Achsverstärker@6532646786
        Gerät     @ Seriennummer
    

    Das Gerät wird ausgeschlossen da erst nach dem @ gesucht werden soll.
    Eine Liste der Seriennummern wäre:

    Seriennummer: 1
    Seriennummer: 2
    Seriennummer: 3
    Seriennummer: 4    NICHT IM BEREICH
    Seriennummer: 5     AUSGABE VON
    Seriennummer: 6
    Seriennummer: 7
    Seriennummer: 8
    Seriennummer: 9
    Seriennummer:10
    Seriennummer:11
    Seriennummer:12
    Seriennummer:13        IM BEREICH
    Seriennummer:26
    Seriennummer: 1A
    Seriennummer: 2A
    Seriennummer: 1B
    Seriennummer: 2B
    Seriennummer: 3B
    Seriennummer: A1
    Seriennummer: A5
    Seriennummer: A10
    Seriennummer: B1
    Seriennummer: B5
    Seriennummer: B10
    Seriennummer: C1
    Seriennummer: C15
    Seriennummer: C49
    Seriennummer: CC2        AUSGABE BIS
    Seriennummer: CC43    NICHT IM BEREICH
    

    Die Funktion sollte so suchen.

    Alle Seriennummern im Bereich VON, BIS sollen gefunden werden.
    VON = 5 , BIS = CC2 👍

    1.)
    Also zuerst alle Seriennummern Von Seriennummer 5 - 26. (Nummerisch steigend).
    Seriennummern die gefunden wurden sollen in eine ListeBox oder
    in einem AnsiString Feld LISTE[] einfügt werden.
    Diese Teilfunktion hat die wichtigste Priorität, weil die meisten Seriennummern nur aus Zahlen bestehen.

    2.)
    Alle Seriennummern mit Zahlen und Buchstaben, Seriennummer 9 - 3B (steigend, lexikalisch).
    Wobei 5 - 26 nummerisch steigend sein soll, Fall 1 schon durchsucht wurde, wenn aber die Seriennummer schon mal vor kam sollte diese ausscheiden.
    Seriennummern die danach kommen sollen in der ListeBox einfügt werden.

    3.)
    Alle Seriennummern mit Buchstaben und Zahlen Von Seriennummer (Steigend, Alphabetisch).
    Wobei Fall 1 und 2 schon durchsucht wurde, wenn aber die Seriennummer schon mal vorkam sollte diese ausscheiden.
    Seriennummern die danach kommen sollen in der ListBox einfügt werden.

    Meine Bisherigen Ergebnisse sind für mich nicht befriedigend.
    Beispiel das ich bis jetzt verwendet habe:

    BereichV = strcmp(IST,VON);
        BereichB = strcmp(IST,BIS);
    
        // Wenn die Seriennummer die gleiche ist die in "Von" angegeben wurde
        if ( (BereichV == 0) )
          {
          Form3->ListBox1->Items->Add(IST);
          }
        // Wenn die Seriennummer groesser ist als in "Von",
        // und im Bereich liegt der in "Von <->Bis" angegeben wurde
                            // UND
        // Wenn die Seriennummer kleiner ist als in "Bis",
        // und im Bereich liegt der in "Von <-> Bis" angegeben wurde
        if ( ( BereichV > 0) & ( BereichB < 0 ) )
          {
          Form3->ListBox1->Items->Add(IST);
          }
        // Wenn die Seriennummer die gleiche ist die in "Bis" angegeben wurde
        if(BereichB == 0)
          {
          Form3->ListBox1->Items->Add(IST);
          }
    

    😃 👍
    Also gut, ist vieleicht schlecht oder schwer beschrieben. Die ganze Sache ist aber auch nicht einfach denke ich.

    1. Suche nach Seriennummern (Zahlen) mit unbegrenzter Anzahl der Zeichen
      Beispiel: 5 ist kleiner als 15

    2. Suche nach Seriennummern (Zahlen+Buchstaben) mit unbegrenzter
      Anzahl der Zeichen. Beispiel: 1A ist kleiner als 1B

    3. Suche nach Seriennummern (Buchstaben) mit unbegrenzter Anzahl der
      Zeichen. Beispiel: AB ist keliner als AC oder als BA

    ich denke jetzt wird es mit der oben beschriebenen Aufgabe klarer.

    In dem Code ist das Problem das nur jedes Zeichen verglichen wird und damit bei einem Suchbereich von 5 bis 25, die in dem Bereich liegenden Zahlen (also 6,7,8,....21,22, 23,24) nicht gefunden werden. Das Suchergebnis ist dann nur 5 u. 25 weil es eben gleich der Eingabe von "VON" und "BIS" ist.

    Gut denke jetzt müsste es klar sein.

    Bin im voraus schon dankbar um jede Idee und Hilfe

    Wäre toll es würde mir jemand helfen können.

    Danke!!!
    😋 😮

    Edit:
    Bitte die Code-Tags benutzen. Danke!



  • Hallo Leute,

    keiner ne Idee??? Hoffe es meldet sich noch jemand.

    come on 😉



  • hallo,

    tja, ich denke du hast mit deiner frage erst mal alle die sie gelesen haben erschlagen. da müsste man sich ja erst mal total reinarbeiten und reindenken, und ich z. b. habe nicht stundenlang zeit für sowas. musst also darauf hoffen, dass du jemanden findest, der da zeit für hat, oder aber jemanden, der eine raschere aufnahmefähigkeit besitzt als die meisten hier ... 🙂

    mfg
    murphy


Anmelden zum Antworten