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

Ergebnis 1 bis 6 von 6

Thema: String ausfiltern

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgendes Problem
    ich muss einen 10stelligen String nach der Eingabe in einem OP
    aus einer Liste (DB) von Strings diesen aussuchen.
    d.h. ich habe einen DB mit 100 Strings und muss nach dem eingegebenen suchen. Mit der so festgestellten Platznummer muss ich dann weitere Infos (1.Byte) aus einem weiteren DB holen.

    Beispiel:
    Eingabe: kabc12fghi
    Liste (DB10)

    aaaaaaa
    bbbbbbbb
    ccccccccc
    kabc12fghi
    ddddddd

    hier steht der String an 4.Stelle
    mit dieser Info wähle ich dann in einem anderen DB das DW4 aus

    Kann mir hier jemand mit einem kleinen Beispiel helfen oder einen Tipp geben

    mit zeigern komme ich bei strings nicht so zurecht (da mehrere Bytes gross) in der pc WELT würde ich ein Array anlegen ?

    System:
    SINATIC S7 CPU 314
    Step7 V5.3
    OP7
    Protool Pro 6

    Danke
    Zitieren Zitieren Gelöst: String ausfiltern  

  2. "Hallo sps-concept,
    super schnelle antwort.
    wird langsam klarer
    jedoch noch zwei fragen zum beispiel

    - der zeiger wird immer um 12 verschoben da string 10 gross = 12Byte
    -LD0 -LD8 hier steht der ausgelesene string (locale variable)

    oder wo steht dann der string zum vergleichen (ich hoffe ich habs verstanden)

    der Vergleicher ist klar (habe ich schon getestet)

    Vielen Dank und ebenso guten Rutsch


    Rainer "


  3. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    kannste doch auch mit nem Array machen, ARRAY[0..99] OF STRING[10].
    Dann würd ich nacheinander die Strings aus dem Array auslesen und auf eine Variable schreiben. Diese über eine Stringvergleichsfunktion mit der Eingabe aus dem OP vergleichen. Und dann gefunden oder weiter. Index nehmen und den anderen Wert entsprechend auslesen, fertig. Machen musste das dann schon selbst, sollst es ja auch verstehen.

    MfG
    André Räppel
    Zitieren Zitieren String  

  4. #3
    Anonymous Gast

    Standard

    Hallo sps-concept,
    Grundsätzlich klar
    doch wie adessiere ich ein Array cc[adresse].....
    Bräuchte hier noch einen Tipp mit welchen Befehlen ich hier an den Inhalt des Arrays komme
    Danke
    Zitieren Zitieren Wie auslesen  

  5. #4
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    na du legst dir zb nen String[1..10] als Lokalvariable an. Der ist dann 12 Bytes lang mit Vorkopf. Dann klapperst du deinen DB mit den fest eingebeben Strings ab

    Code:
    L 100 // Anzahl??
    BACK: T schleife
    
    CLR
    = gefunden
    
    AUF DB ??
    
    L index
    L 12
    *I
    T Zeiger
    
    L DBD[zeiger,P#0.0]
    T LD0
    L DBD[zeiger,P#4.0]
    T LD4
    L DBD[zeiger,P#8.0]
    T LD8
    
    Dann verglechst du den ausgelesenen String mit dem Eingabewert des OP. --> gefunden   Da findeste in der Standard Lib ne entsprechende Funktion. Wenn ungleich dann gehst du weiter in der Schleife
    
    U gefunden
    SPB NEXT
    
    L schleife
    Loop BACK
    
    NEXT: U gefunden
    ......
    Viel Erfolg und guten Rutsch!

    MfG
    André Räppel
    Zitieren Zitieren String  

  6. #5
    Anonymous Gast

    Standard

    Hallo sps-concept,
    super schnelle antwort.
    wird langsam klarer
    jedoch noch zwei fragen zum beispiel

    - der zeiger wird immer um 12 verschoben da string 10 gross = 12Byte
    -LD0 -LD8 hier steht der ausgelesene string (locale variable)

    oder wo steht dann der string zum vergleichen (ich hoffe ich habs verstanden)

    der Vergleicher ist klar (habe ich schon getestet)

    Vielen Dank und ebenso guten Rutsch


    Rainer
    Zitieren Zitieren wird langsam klarer  

  7. #6
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    der Eingabewert aus dem OP steht dort wo du ihn per Variablendeklaration in Protool festlegst. das steht nicht mit im Beispiel.

    Den Index musste natürlich auch noch erhöhen. Kannst sinnigerweise auch den Schleifenzähler als Index nehmen. Wenns dich dann nicht stört dass er von hinten nach vorn macht kannst du das mit dem LOOP auch so lassen.

    War nur mal schnell zusammengestammelt wie ichs mir prinzipiell vorstellen würde. Aber wieso widmest du dich nicht anderen Strings? Die sind leichter zu handhaben

    MfG
    André Räppel
    Zitieren Zitieren String  

Ähnliche Themen

  1. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Int na. String und String zusammensetzen
    Von bastler im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 09.11.2008, 20:29
  4. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21
  5. STRING aus einzelnen STRING's zusammenstellen
    Von ollibolli im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.08.2006, 09:39

Lesezeichen

Berechtigungen

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