Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Duplikate im Array

  1. #1
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Suche nach duplikaten in einem array
    Geändert von zloyduh (14.02.2012 um 15:20 Uhr)
    Zitieren Zitieren Duplikate im Array  

  2. #2
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Ähhhhhhhhhhhhhh - Jaa !

    Was willst du uns damit nun sagen ?
    Soll das ein SCL-Script werden ?
    Wie soll es deiner Meinung nach weiter gehen ?

  3. #3
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Frage

    Möchte Daten einträge in einem DB nach Duplikaten durchsuchen
    Wird ein Duplikat gefunden soll eine Meldung ausgegeben werden sonnst nicht..

    Habe einen UDT angelegt, dieser wird in einem DB als Array aufgerufen.
    Der Bediener gibt die Daten mittels OP ein und vergibt namen .
    Ist bereits ein Datensatz mit dem gleichem Namen vorhanden soll dies als Meldung angezeigt werden.

    Habe folgendes programmiert. Das Problem ist, dieser findet sich selbst und gibt die Meldung aus.

    IF SATZ_SPEICHERN AND NOT FL1 THEN // Datensatz bei POS. Flanke speichern
    AUFTRAG.DATEN[INDEX]:= AUFTRAG;
    FOR INDEX:= 1 TO 99 DO
    IF AUFTRAG.DATEN[INDEX].SATZ_NAME = SATZ_NAME THEN
    O_MELDUNG:= 100;
    EXIT;
    END_IF;
    END_FOR;
    END_IF;
    FL1:= SATZ_SPEICHERN;
    Zitieren Zitieren nach Duplikaten in Array suchen in SCL  

  4. #4
    Registriert seit
    27.09.2010
    Beiträge
    516
    Danke
    36
    Erhielt 63 Danke für 56 Beiträge

    Standard

    Zitat Zitat von zloyduh Beitrag anzeigen
    habe bis jetz folgendes:
    FOR I:= 1 TO 99 DO
    ich glaube der TE will uns damit sagen das er keine ahnung hat was er will

    dazu fällt mir das stichwort STRING ein

    http://cache.automation.siemens.com/dnl/jQ/jQ4MTI5AAAA_22506480_FAQ/S7_SCL_String_Parameterzuweisung_e.pdf

    s
    iehe punkt5.2

    mal abgesehen davon http://www.gidf.de/

  5. #5
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard

    JETZT ABER!

    Hallo möchte in ein Array nach Duplikaten durchsuchen.
    Falls ein Duplikat gefunden wird soll eine Meldung ausgegeben werden sonst nicht.

    Habe ein UDT angelegt. Dieser wird in einem DB als Array aufgerufen.


    habe bis jetzt folgendes:

    IF #I_SPEICHERN AND NOT #FL1 THEN
    "AUFTRÄGE".Auftrag[#INDEX]:= #AUFTRAG;
    FOR #INDEX:= 1 TO 99 DO
    IF "AUFTRÄGE".Auftrag[#INDEX].SATZ_NAME = #AUFTRAG.SATZ_NAME THEN
    #O_MELDUNG_Nr:=106; // Meldung Datensatz schon vorhanden
    EXIT;
    END_IF;
    END_FOR;
    END_IF;
    #FL1:= #I_SPEICHERN ;

    Das Problem ist der findet sich immer selbst!
    Wie kann ich auf einen doppelten Eintrag kontrollieren?

  6. #6
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    ... du zählst die Anzahl der gleichnamigen Einträge ...! Wenn > 1 dann doppelt !

  7. #7
    zloyduh ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2008
    Beiträge
    226
    Danke
    92
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Lupo Beitrag anzeigen
    ... du zählst die Anzahl der gleichnamigen Einträge ...! Wenn > 1 dann doppelt !

    Habe folgendes probiert, funktioniert aber nicht
    was mache ich fasch?

    AUFTRAG.SATZ_NAME: STRING
    I_SPEICHERN: BOOL;
    FL1: BOOL
    AUFTRÄGE: ARRAY[1..99] OF DATENSATZ
    AUFTRAG: DATENSATZ //Koppelberech HMI -> SPS
    i: INT
    INDEX: INT
    ANZ: INT
    O_MELDUNG_Nr: INT



    IF #I_SPEICHERN AND NOT #FL1 THEN
    "AUFTRÄGE".Auftrag[#INDEX]:= #AUFTRAG;

    FOR #i:= 1 TO 99 DO
    IF "AUFTRÄGE".Auftrag[#i].SATZ_NAME = #AUFTRAG.SATZ_NAME[INDEX] THEN
    #ANZ:= #ANZ+1;
    IF #ANZ > 1 THEN
    #O_MELDUNG_Nr:=106;
    // Meldung Datenatz schon vorhanden
    END_IF;
    END_IF;
    EXIT;
    END_FOR;
    END_IF;
    #FL1:= #I_SPEICHERN ;
    Geändert von zloyduh (14.02.2012 um 19:37 Uhr)

  8. #8
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Schau dir mal diese Beiträge an:
    http://www.sps-forum.de/showthread.p...y-in-DB-suchen
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  9. #9
    Registriert seit
    14.02.2012
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das Problem das Du hast, ist das Du den Datensatz einträgst, bevor
    Du weist, ob der schon vorhanden ist.
    Das muß generell andersrum passieren. Darum findet er immer sich selber.

  10. #10
    Registriert seit
    14.02.2012
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das wäre eine mögliche Lösung.

    IF #I_SPEICHERN AND NOT #FL1 THEN

    FOR #i:= 1 TO 99 DO
    IF "AUFTRÄGE".Auftrag[#i].SATZ_NAME = #AUFTRAG.SATZ_NAME[INDEX] THEN
    #ANZ:= #ANZ+1;
    END_IF;
    END_FOR;

    IF #ANZ >= 1 THEN
    #O_MELDUNG_Nr:=106; // Meldung Datenatz schon vorhanden
    ELSE
    "AUFTRÄGE".Auftrag[#INDEX]:= #AUFTRAG; END_IF;

    #FL1:= #I_SPEICHERN;




Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Array
    Von macmanay2010 im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 17.07.2011, 21:46
  3. Array
    Von 4Josh im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 22.04.2011, 13:48
  4. In: Array ???
    Von husox81 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 15.12.2008, 07:07
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •