Record und dynamischer Aufruf

  • ich komm heir an einer stelle nicht weiter


    ich erstelle mir meinen eigenen Datentyp
    RECORD MeineData
    string Info;
    num Index;
    ENDRECORD

    VAR MeineData MeineDaten1:=["Text1",23];
    VAR String MeineDatenTemp;

    num möchte ich mir einen String zusammenbasteln mit den ich dann auf einen Instanz davon zugreifen kann:

    MeineDatenTemp:="Meine"+"Daten"+ValToStr(1);

    ==>hier fehlt jetzt was :wallbash:

    reg1:=MeineDatenTemp.Index

  • ANZEIGE
  • Hallo Robiman,


    wenn ich richtig verstanden habe, willst Du gewissen Strings Indexe zuweisen und dann zu einem vorgegebenen String den Index suchen!?
    MeineDatenTemp sollte dann auch vom Typ Meinedata sein der Einfachheit wegen:


    RECORD MeineData
    string Info;
    num Index;
    ENDRECORD

    VAR MeineData MeineDaten{3}:=[["Horst",23],["Klaus",24],["Ulli",25]];
    VAR MeineData MeineDatenTemp;



    MeineDatenTemp.Info:="Horst"; ! hier der Suchstring aus Deiner Anwendung rein
    MeineDatenTemp.Index:=fHoleIndex(MeineDatenTemp.Info);



    suchen:


    FUNC num fHoleIndex (string sSuch)
    VAR num nlauf;


    FOR nlauf FROM 1 TO 3 DO
    IF MeineDaten{nlauf}.Info=sSuch RETURN MeineDaten{nlauf}.Index;
    ENDFOR

    ! nichts gefunden
    RETURN -99999;
    ENDFUNC


    Habs nicht getestet nur als Idee!


    Grüße dust2

    Einmal editiert, zuletzt von dust2 ()

  • Hallo Daniel


    mein Problem ist nicht der Index, darauf kommt es mir gar nicht an.
    Der Text ändert sich, war vielleicht blöd beschrieben
    So könnten meine Daten aussehen:
    VAR MeineData mdAudi:=["Text1",123];
    VAR MeineData mdVW:=["Text2",234];
    VAR MeineData mdPorsche:=["Text3",342];
    Diese Instanzen sind alle schon vorhanden.


    Dabei möchte ich den string "mdAudi" in eine Instanz vom Datentyp MeineDaten umwandeln


    in etwa so wie bei einen dynamischen Routinenaufruf soll es funktionieren
    %"Programm"% nPrgAkt;

  • Hi,


    probiere bitte den folgenden Programmcode aus:



    Mfg
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hey Micky :danke:
    du bist ja der geniale Lösungsfinder, kann das sein das du da genau an der Quelle sitzt?
    vlt. sieht man sich ja mal.


    Hatte es jetzt doch noch hinbekommen, aus den alten Beitrag von damals abgeleitet
    genau wie du dort beschrieben hast. :supi:
    eine Funktion die mir ein bestimmtes Feld aus meineDaten zurückliefert


    kanns am Montag dann auch nochmal so testen, ohne den Umweg der Funktion

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden