Länge eines Array (length of an array)

Hallo,
gibt es ähnlich wie bei Kanälen - chnlength - eine Möglichkeit die Länge von Arrays abzufragen?
Is there any possibility to get the length of an array like chnlength?
Gruß

Arrays in vbs are a little tricky.
Thats mainly because
dim arr()
does not create an empty array but an unitialized one. So calling Ubound(arr) will raise an error.
It will also fail to loop using "for each".
So I would suggest to never use "()" to define an array but
dim arr : arr = Array()
MsgBox "length=" & ubound(arr) + 1
dim arrElem
for each arrElem in arr
' here we can do something
Next
Array() will create an initialized Array of length 0. UBound will give -1 as return value.
Usng this returing an array from a funtion works quiet well without having to check for exceptions if array is empty.
Option Explicit
Function GetElems()
GetElems = Array()
' do some stuff
end function
dim elems : elems = GetElems
dim elem
for each elem in elems
' here we can do something
Next
If you want to dynamically grow an array you can use redim preserve.
Option Explicit
dim arr : arr = Array()
redim preserve arr(Ubound(arr) + 1)
arr(UBound(arr)) = "Appended text"
MsgBox "length=" & ubound(arr) + 1 & VBCRLF & arr(0)

Similar Messages

  • ReDim eines Arrays in einem Objekt

    Hallo,
    ich versuche gerade ein Objekt aus einem Script an einen SUD-Dialog zu übergeben. Dies Funktioniert soweit auch. Das Übergabeobjekt "oData" enthält mehrere Arrays (zur Zeit System und Valve). Die Dimension dieser kenne ich teilweise vorab aber noch nicht, da eine TDM-Datei mit einem Textkanal die Elemente enthält.
    Kann ich mit ReDim die Größe des dynamischen Datenfeld nach dem anlegen (und dem Laden der Parameterdatei)  irgendwie ändern? Bekomme leider immer eine Fehlermeldung.
    Nachfolgen der bisherige Code:
    Option Explicit
    Dim temp
    Call DataDelAll()
    DataFile = "VSD-Parameter.TDM"
    Call DataFileLoad(DataFile)                         ' Parameterdatei
    If Not ItemInfoGet("oData") Then
       Call GlobalDim("oData")
    End If
    temp = ChnPropValGet("[1]/Systeme", "length")       ' Kanallänge = gewünschte Größe vom Array
    Set oData = New cData                               ' Objekt anlegen
    'ReDim oData.System(temp)                           ' funktioniert so leider nicht
    For i = 1 to ChnPropValGet("[1]/Systeme", "length") ' Daten aus Kanal in Array übertragen
      oData.System(i-1) = ChT(i, "[1]/Systeme")
    Next
    Call SudDlgShow("Dlg1","TestSUD.sud",oData)         ' Dialog anzeigen
    Class cData                                         ' Klasse
      Dim Valve(12)                                     ' feste Größe
      Dim System(4)                                     ' mit fester Größe funktioniert es
      'Dim System()                                      ' so leider nicht
    End Class
    Vielen Dank schon mal
    Markus

    Hallo Markus!
    Das grundsätzliche Problem liegt wohl darin das der ReDim Befehl nur direkt auf eine Variable funktioniert. Etwas in der Art ReDim oMyObject.avMyArray(10) geht deshalb nicht (egal ob SUD oder nicht).
    Was ist nun die Lösung? Da gibt es zwei Möglichkeiten:
    1. Man kann der Klasse eine Methode geben, bei dir z.B.:
    Class cData ' Klasse
    Dim Valve(12) ' feste Größe
    Dim System()
    Public Sub ReDimSystem(ByRef nCount)
    Redim System(nCount)
    End Sub
    End Class
    und diese dann im SUD aufrufen.
    2. Etwas einfacher und IMHO besser lesbar ist es einfach im SUD ein lokales Array anzulegen und dieses via ReDim auf die richtige Größe bringen. Zum Schluss wird es dann einfach der Variable in der Klasse zugewiesen. Diese muss dann nur ohne (), also als 'normale' Variable deklariert sein.
    Matthias
    Message Edited by Twigeater on 03-02-2008 08:53 AM
    Matthias Alleweldt
    Project Engineer / Projektingenieur
    Twigeater?  

  • Kanalwerte in Array

    Hallo,
    gibt es eine Möglichkeit die Werte eines Kanals in ein Array zu speichern?
    Danke
    Mfg
    Joe

    Hi danke für die Antwort.
    Ich muss Daten aus einer anderen Datei zwischenspeichern da ich sie zum Berechnen für eine andere Datei brauche.
    Habe einen kleinen Test gemacht... aber leider geht das scheinbar nicht:
    dim Kanalarray_Lenker, lauf
    Kanalarray_Lenker = ChnToValue ("testjoe/wertejoe")
    for lauf = (LBound(Kanalarray_Lenker)) to (UBound(Kanalarray_Lenker))
    msgBox(Kanalarray_Lenker(lauf))
    next
    Kann ich bei ChnToValue nicht direkt den Gruppe/Kanal eingeben?

  • Speichern in Arrays und anschließend die Arrays vergleichen.

    Es handelt sich also um ein geregeltes System mit einem DC Motor.
    Motor läuft am Anfang ohne Last und später mit Last im Loop. Ich möchte diese 2 Arten miteinander vergleichen, genauer gesagt die 2 elektrische kräfte des Motors.
    OHNE LAST: Die Frage ist also wie soll das am einfachsten passieren? Ich habe mir gedacht dass
    es am besten ist Lauf des Motors OHNE Last in ein Array und dann in eine Datei zu speichern.
    Dabei denke ich an Array oder Map (also Key ist Frequenz des Motors die in 1-er schritten erhöht wird und Value ist einfach die Kraft des Motors bei dieser Frequenz.
    MIT LAST: Wenn ich jetzt diese Datei habe, möchte ich ein Lauf MIT Last starten. Hier wird auch die Frequenz
    in 1-er Schritten
    erhöht und der aktuelle Wert der Kraft mit der Kraft des Motors ohne Last verglichen unddie Differenz angezeigt.
    Kann mir jemand bitte tipps geben wie genau ich das machen soll, also wie man die Werte in Arrays speichert, wie man die Arrays vergleicht usw., oder vielleicht sogar ein kleines .vi Beispiel?
    Danke im Voraus
    Vedran Divkovic
    PY RUB

    Sorry, my German is a bit rusty. One solution would be to design the program as a simple state machine and store the Load and NoLoad result in a shift register each.
    See attached example. Let me know if this is what you meant.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    Load.vi ‏114 KB

  • Gültigkeit von arrays bei funktionen

    Moin zusammen
    Ich habe eine Frage zur Gültigkeit von Variablen(Arrays).
    Wie übergebe ich ein Array korrekt an eine SUD-Funktion, die dieses Array füllen soll.
    (Diese Funktion soll mehrfach im Dialog benutzt werden)
    Die aufrufenden Funktionen bekommen nur das erste Item zu sehen.
    Gruß,
    Marco

    Guten Abend Marco!
    Könntest du bitte noch etwas Beispielcode anhängen damit dein Problem so richtig klar wird.
    Matthias
    Matthias Alleweldt
    Project Engineer / Projektingenieur
    Twigeater?  

  • Anzeigeelement Array auslesen

    Hallo,
    sicher eine simple Farge.
    Ich schreibe meine Messdaten in ein 2D Array, also Messung 1
    hat 1000 Werte und steht in Zeile 1, Messung 2 hat wieder 1000 Werte und steht
    in Zeile zwei usw.
    Nach der Aufnahme der Messwerte will ich auf das Array
    zugreifen und z.B. mit der Fkt. Teilarray die zweite Messung in ein Teilarray
    schreiben.
    Mein Problem:
    Wie kann ich auf die gespeicherten Werte des Arrays nach
    meinen Messungen zugreifen. Das Array liegt ja als Anzeigeelemet vor und nicht
    als Bedienelement. Würde ich einfach ein Bedienelement erzeugen und Werte
    hineinschreiben wäre es kein Problem.
    Danke
    PS
    Ich speichere die Messwerte mittels Schieberegister
    in einem Array. Kann ich auf das Array ohne
    dieses Schieberegister nicht zugreifen?  Eigentlich kann
    ich doch in jeder Programmiersprache Werte in ein Array schreiben und später diese
    Array wieder auslesen. 

    Danke für die schnelle Antwort. Wahrscheinlich gehe ich von falschen Voraussetzugen aus.
    Bild1 im Anhang zeigt das Array Messwerte, deren Daten weiterverarbeitet werden sollen.
    Wenn ich dieses Array Messwerte so einsetzten könnte wie in Bild2 das Eingangsarray Array, dann wäre das kein Problem.
    Attachments:
    Bild1.jpg ‏103 KB
    Bild2.jpg ‏46 KB

  • Dateianhänge aus PDF-Datei auslesen

    Hallo,
    ich schreibe derzeit ein Tool um Dateianhänge eines PDF-Files zu prüfen. Dieses Tool brauche ich für meine Arbeit und soll die Attachments aus einem zuvor erstellten PDF auslesen damit ich die Namen und Anzahl der Attachments erhalte.
    Auf der Maschine ist in jedem Fall der Reader installiert, auf einer anderen auch Acrobat. Da beide Produkte ebenfalls die AcroPDF.dll installieren, wollte ich diese DLL (und keine andere FreeLibrary) verwenden.
    Nun habe ich mir die Adobe SDK von Adobe gezogen und angeschaut, nur ich komme nicht auf die Lösung wie ich das machen kann.
    Auch möchte ich dazu sagen das ich kein Profi bin und mit VB.net 2010 arbeite.
    Hättet Ihr mir bitte eine Idee (und vieleicht ein Script-Beispiel) wie ich ein PDF öffnen und die Anhänge auslesen kann?
    Mein Ziel ist es das Tool auf beide Maschinen einzusetzen.
    Ich wäre Euch echt dankbar, ich finde den roten Faden leider nicht :-(
    Viele Grüsse,
    Maximilian

    Also mit VB kann ich dir nicht helfen.
    Aber was du vorhast kannst du auch einfach mit den Bordmitteln in Acrobat lösen.
    Alles was durch brauchst ist JavaScript.
    var nDataObjects = this.dataObjects;
    var nDump = [];
    if (nDataObjects !== null)
         for (var i=0; i<nDataObjects.length; i++)
              var iAlias = i + 1;
              nDump.push("Anhang-Nr.: " + iAlias + " = " + nDataObjects[i].path + "\u000a");
         app.alert("Anzahl der Anhänge: " + nDataObjects.length + "\n\n" + nDump);
    else
         app.alert("Dieses Formular hat keine Anhänge");
    Dieses kannst du entweder in einem Button verwenden oder in die JavaScript Konsole kopieren und dort direkt ausführen.

  • Hallo, ich suche in DiaDem 10 nach einer Möglichkei​t, nach einer Vorgegeben​en Prozedur aufeinande​rfolgende Abschnitte eines Messwertka​nals miteinande​r zu Verrechnen - Bildung eines gemittelte​n Verlaufs des Kanals bei Trommelprü​fstandsmes​sung

    Ich suche nach eine Prozedur in VBS oder als Autosequenz.
    Bildung des gemittelten Verlaufs eines Messwertkanals bei Trommelprüfstandsmessung:
    1. Gehe vom Anfang des Kanals eine vorgegebene Anzahl von Messpunkt vor
    2. Nimm aus diesem Bereich das Maximum
    3. Gehe zum darauf folgenden Nulldurchgang der Kurve
    4. Gehe von da "x" Messpunkte zurück zu Punkt "y"
    5. Schneide mir ab "y" jede einzelne Trommelumdrehung aus (50 Umdrehungen)
    6. Bilde mir aus den Einzelumdrehungen eine gemittelte Umdrehung
    7. Nimm den Wert "y" und berechne mir die gemittelte Überfahrt für alle übrigen Kanäle
    Für Anregungen wäre ich dankbar.

    Ich habe zwar kein komplettes Skript für speziell diese Aufgabe, kann Ihnen aber dennoch ein paar Tipps geben, welche Befehle Sie einsetzten können.
    Mit StatBlockCalc kann aus einem Intervall eines Kanales der Maximalwert ermittelt werden. Einfach als RowNoStr die Zeilen in der datenmatrix angeben, z.B. "1-50"
    Nulldurchgänge einer Kurve finden Sie am zuverlässigsten, wenn Sie die Kurve integrieren (ChnIntegrate) und anschliessend nach Extremwerten sichen (ChnPeakFind). Letztere Funktion muss unter Umständen zweimal aufgerufen werden - einmal Maximal und einmal für Minimalwerte (Richtung des Nulldurchgangs). Ergebnis sind jeweils 2 Kanäle mit den Koordinaten der Extremwertwerte. Der Kanal X-Peak gibt den Zeitpunkt des Nulldurchgangs an.
    Mit den PNo Funktion kann im Zeitkanal der Messung nach den Zeitpunkten des Nulldurchgangs gesucht werden, als Ergebnis erhält man die Zeile mit dem Nulldurchgang, hiervon können dann einfach x Werte abgezogen werden
    Mit DataBlCopy können Datenbereiche eines Kanal kopiert werden, so können die Werte zwischen den Nulldurchgängen in neue Kanäle kopiert werden Als Parameter dient unter Anderem die Startzeile, welche mit PNo ermittelt wurde.
    Falls die Datenmatrix dynamisch verwaltet wird, müssen die neuen Kanäle vor der Kopieraktion mit ChnAlloc noch angelegt werden.
    StatBlockCalc kann nicht nur genutzt werden, um den Mittelwert innerhalb eines Kanales zu finden; in der zeilenorientierten Auswertung (s.Dialog "Deskriptive Statistik" bzw "statistische Kennwerte") kann ein Mittelwert Zeilenweise über mehrere Kanäle berechnet werden. Das Ergebnis ist in diesem Fall ein Kanal.
    Ich hoffe, die Hinweise erleichtern Ihnen die Erstellung des Skriptes. Leider können ein Teil der erwähnten Funktionen nicht im teachin Modus mitgeloggt werden, so dass auch ein wenig manuelle Programmierung nötig sein wird.
    Ingo Schumacher
    Systems Engineer Sound&VibrationNational Instruments Germany

  • Wie Kanallänge speichern?

    Hallo zusammen,
    ich benutze derzeit DIAdem Version 10.0 für meine Studienarbeit.
    Um den Ablauf der Berechnung nach Aufnahme der ganzen Messdaten zu vereinfachen bin ich nun dabei ein Skript dafür zu programmieren.
    Leider stieß ich dabei auf ein Problem, was  auch bislang im Forum nicht gelöst wurde.
    Ich möchte die Länge eines Datenkanals speichern und einer Variablen oder einem neuen Kanal zuweisen, so dass ich mit diesem später weiterechnen kann.
    Kann mir da einer helfen, wie ich das hinbekomme?
    Besten Dank!
    Gruß Karl

    Im VBS-Skript:
    Speichern in Variable
    meinevariable = chnlength(Kanalnummer)
    Speichern in Kanal:
    chd(1,13) = chnlength(7) schreibt in Kanal 13 Zeile 1 die Länge von Kanal 7
    Gruß
    Sönke Gilbrich

  • Problem with a View Object

    Hi,
    I am using ADF BC technology.
    I've got a curious for me problem...
    I get from a creation form a code that the user enter, a method in the app. module checks
    using the view object if the code exists or not...
    The code always Exist! Debugging I found out that the code that is found is the code that the user tries to enter...
    Am I missing something?
        public String add() {
            BindingContainer bindings = getBindings();
             if (bindings != null) {
                OperationBinding operationBinding = bindings.getOperationBinding("checkKbExam");
                 operationBinding.getParamsMap().put("code",inputText2.getValue());
                 Boolean  result = (Boolean) operationBinding.execute();
                System.out.println("balame gia code: "+ inputText2.getValue());
                System.out.println("pirame apo appmodule: "+result );
                if(result==false){
                    FacesContext context = FacesContext.getCurrentInstance();
                    operationBinding =
                            (OperationBinding)bindings.getOperationBinding("getMsg");
                    operationBinding.getParamsMap().put("msgId", "5");
                    String msg = (String)operationBinding.execute();
                    FacesMessage message1 =
                        new FacesMessage(msg);
                    context.addMessage(null, message1);
                    return"null";
                 OperationBinding operationBinding1 =bindings.getOperationBinding("Commit");
                 operationBinding1.execute();
        public boolean checkKbExam(String code) {
           checkKbExamImpl check  = getcheckKbExam1();
           check.setTheGivenCode(code);     
           check.executeQuery();
           Row[] row = check.getAllRowsInRange();
           getcheckKbExam1().setCurrentRow(row[0]);
           System.out.println(row[0].getAttribute("RefCodeSystem"));
           try{
               System.out.println(row[1].getAttribute("RefCodeSystem"));
            catch(Exception e){
            System.out.println("error "+ e);
           if (row.length>0) {
              System.out.print("mikos einai  " + row.length);
              return false;
             return true;
        }

    No solution yet guys ...and it's really annoying!
    When i put a "code" that does not exists in the table...the array length is 1.
    When it exists it's again 1 !!!!
    so what does it leave me?
    pls somebody help

  • Datasource for plain UDP ....

    Hi. I tried to write out my own datasource which should be able to help interpreting plain UDP Signals (without RTP). Can anybody watch of them and help me with 2. Problems:
    1. The: UDPPushSourceStream s = new UDPPushSourceStream(sock, ml.getIpAdresse(), ml.getPortnummer()); in DataSource.java doesn't work -> "Cannot resolve symbol"! Why?
    2. When I put this line in comment, I can compile all the files. But when loading the Player Applet I get the following Exception. Why? What does it mean:
    java.security.AccessControlException: access denied (java.net.SocketPermission 225.225.225.225 connect,accept,resolve)
         at java.security.AccessControlContext.checkPermission(Unknown Source)
         at java.security.AccessController.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkMulticast(Unknown Source)
         at java.net.MulticastSocket.joinGroup(Unknown Source)
         at DataSource.connect(DataSource.java:80)
         at player.init(player.java:32)
         at sun.applet.AppletPanel.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Sources:
    First DataSource.java:
    /** DataSource f�r UDP-Protokoll **/
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.udp.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class DataSource extends javax.media.protocol.PushDataSource {
      protected UDPMediaLocator ml;
      protected MulticastSocket sock;
      // No Argument Constructor
      public DataSource() {
        this.ml = null;
      // Constructor
      public DataSource(MediaLocator src) { 
        this();
        setLocator(src);
      // Wirft die Streams zur�ck, die von dieser
      // DataSource verwaltet werden!
      public PushSourceStream[] getStreams() {
        initCheck();
        PushSourceStream[] streams = new PushSourceStream[1];
        UDPPushSourceStream s = new UDPPushSourceStream(sock, ml.getIpAdresse(), ml.getPortnummer());
        streams[0] = s;
        return streams;
      // Setzt MediaLocator und damit die Location der Daten
      // Diese Methode soll nur einmal aufgerufen werden!
      public void setLocator(MediaLocator src) {
        if(this.ml == null) {
          this.ml = (UDPMediaLocator) src;
        else {
          throw new Error("MediaLocator bereits gesetzt!");
      // Gibt das MediaLocator-Objekt zur�ck
      public MediaLocator getLocator() {
        return this.ml;
      // Wurde die Verbindung initialisiert?
      protected void initCheck() {
        if(this.ml == null) {
          throw new Error("Datenquelle uninitialisiert");
      // Gibt den Content-Type der DataSource aus
      // bei uns unbekannt.
      public String getContentType() {
        initCheck();
        return Manager.UNKNOWN_CONTENT_NAME;
      // �ffnet die Verbindung zum Server
      public void connect() throws java.io.IOException {
        initCheck();
        if(sock != null) {
          disconnect();
          sock = null;
          // reader = null;
        InetAddress addresse = ml.getIpAdresse();
        sock = new MulticastSocket(ml.getPortnummer());
        sock.joinGroup(addresse);   
      // Schlie�t Verbindung zum Server
      public void disconnect() {
        initCheck();
        sock.close();
        sock = null;
      // Start hat nichts zu tun.
      public void start() {
      // Stop hat nichts zu tun.
      public void stop() throws java.io.IOException {
      // Wirft die Dauer des Mediums aus.
      // Ist bei uns unbekannt.
      public Time getDuration() {
        return Duration.DURATION_UNKNOWN;
      // Wirft ein Array mit allen Controls aus
      // Wir haben keine Controls
      public Object[] getControls() {
        return new Object[0];
      public Object getControl(String controlName) {
        return null;
    ===========================
    Now: UDPMediaLocator.java:
    /** MediaLocator f�r UDP-Protokoll **/
    import javax.media.udp.*;
    import javax.media.*;
    import java.net.*;
    import java.io.*;
    import java.util.*;
    public class UDPMediaLocator extends javax.media.MediaLocator {
      protected String IpAdresse;
      protected int Portnummer;
      // Constructor  
      public UDPMediaLocator(String IpAdresse, int Portnummer) {
        super(IpAdresse + ":" + Portnummer);
        this.IpAdresse = IpAdresse;
        this.Portnummer = Portnummer;
      // Gibt IP-Adresse als InetAdresse zur�ck
      public InetAddress getIpAdresse() throws UnknownHostException {
        return InetAddress.getByName(IpAdresse);
      // Gibt Portnummer zur�ck
      public int getPortnummer() {
        return this.Portnummer;
      // Wirft 0 zur�ck, da keine URL existiert
      public URL getURL() throws MalformedURLException {
        return null;
      // Wirft Protokoll-Namen zur�ck {
      public String getProtocol() {
        return "udp";
      // Wirft 0 zur�ck, wird in unserem Fall nicht ben�tigt
      public String getRemainder() {
        return null;
    ===========================
    Now: UDPPushSourceStream.java:
    /** PushSourceStream f�r UDP-Protokoll **/
    import java.io.IOException;
    import java.net.InetAddress;
    import java.net.DatagramSocket;
    import java.net.MulticastSocket;
    import java.net.DatagramPacket;
    import java.net.SocketException;
    import javax.media.udp.*;
    import javax.media.protocol.DataSource;
    import javax.media.protocol.PushSourceStream;
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.SourceTransferHandler;
    public class UDPPushSourceStream implements javax.media.protocol.PushSourceStream {
      MulticastSocket sock;
      InetAddress address;
      String addresse;
      int port;
      SourceTransferHandler sth = null;
      // Constructor
      public UDPPushSourceStream(MulticastSocket sock, String address,int port) {
      this.sock = sock;
      this.addresse = address;
      this.port = port;
      // Liest Daten aus dem Stream
      public synchronized int read(byte buffer[], int offset, int length) throws IOException {
        DatagramPacket p = new DatagramPacket(buffer, offset, length, address, port);
        try {
         sock.receive(p);
        } catch (IOException e) { return -1; }
        return p.getLength();
      // Stream ist theoretisch unendlich
      public boolean endOfStream() {
        return false;
      // Gibt den ContentDescriptor f�r den Stream wieder
      public ContentDescriptor getContentDescriptor() {
        ContentDescriptor cd = null;
        cd = new ContentDescriptor(ContentDescriptor.CONTENT_UNKNOWN);
        return cd;
      // Gibt die Anzahl an Bytes im Stream wieder
      // Ist bei uns nicht bekannt.
      public long getContentLength() {
        return LENGTH_UNKNOWN;
      // Control-Methode wird nicht unterst�tzt
      public Object getControl(String ControlName) {
        return null;
      // Gibt ein Array mit allen Controls zur�ck
      // Wird nicht unterst�tzt.
      public Object[] getControls() {
        return new Object[0];
      public synchronized void setTransferHandler(SourceTransferHandler sth) {
        this.sth = sth;
      public int getMinimumTransferSize() {
        return 2 * 1024;
    ===========================
    Now: Player.java:
    import javax.media.udp.*;
    import javax.media.*;
    import javax.media.protocol.*;
    import java.applet.*;
    import java.awt.*;
    import java.net.*;
    import java.util.*;
    public class player extends java.applet.Applet implements ControllerListener {
      private UDPMediaLocator locator;
      private String ip = "225.225.225.225";
      private int port = 1112;
      private Label cachingStatus;
      private transient Player player;
      private transient DataSource dataSrc;
      private transient Component visualComp;
      private transient long bytesReceived;
      public void init() {
        setLayout(new BorderLayout());
        cachingStatus = new Label("");
        add("Center", cachingStatus);
        locator = new UDPMediaLocator (ip, port);
        DataSource ds = null;
        Class dsClass = null;
        String dsClassname = "DataSource";
        try {
          dsClass = Class.forName(dsClassname);
          ds = (DataSource) dsClass.newInstance();
          ds.setLocator(locator);
          ds.connect();
          player = Manager.createPlayer(ds);
          player.addControllerListener(this);
          player.prefetch();
        catch (ClassNotFoundException ex) { throw new Error(ex.toString()); } 
        catch (IllegalAccessException ex) { throw new Error(ex.toString()); }    
        catch (InstantiationException ex) { throw new Error(ex.toString()); } 
        catch (javax.media.NoPlayerException ex) { throw new Error(ex.toString()); }   
        catch (java.io.IOException ex) { throw new Error(ex.toString()); } 
      public void stop() {
        if(player != null) {
          player.stop();
          player.deallocate();
      public void destroy() {
        if(player != null) {
          player.removeControllerListener(this);
          player.stop();
          player.close();
          player = null;
        super.destroy();
      public synchronized void controllerUpdate(ControllerEvent evt) {
        if(evt instanceof EndOfMediaEvent) {
          player.stop();
          player.setMediaTime(new Time(0L));
          player.start();
        else if(evt instanceof PrefetchCompleteEvent) {
          remove(cachingStatus);
          visualComp = player.getVisualComponent();
          if (visualComp != null){ this.add("Center", visualComp); }
          else {
            Label novisual = new Label("This Player has no visual component");
            add("Center", novisual);
          validate();
          repaint();
          player.start();
        else if(evt instanceof CachingControlEvent) {
          CachingControlEvent cce = (CachingControlEvent) evt;
          bytesReceived = cce.getContentProgress();
          cachingStatus.setText(bytesReceived + " bytes Received");
          validate();
          repaint();
        else if (evt instanceof ControllerErrorEvent) {
          ControllerErrorEvent cee = (ControllerErrorEvent) evt;
          System.out.println("cee.getMessage " + cee.getMessage());
          System.out.println("bytesReceived = " +bytesReceived);
    }What's going wrong? Are these files correct or does anybody have some comments of them? Thx for any help!
    Jan

    Okay ... I read sth. about the sanbox - thing, but I can't exactly find a way how to get Applets working with those networks things?! Can you tell me a little about this?
    Thx,
    Jan

  • Split file name

    Hallo,
    ich habe einen Filenamen, der folgendermassen aufgebaut ist: aaaaaa__bbbbbb_d__cc_ddd__ee_ff_gg_hh__iii......... Der Name soll nun jeweils bei doppelter Underline getrennt werden und die Werte jeweils in eine Variable geschrieben werden. Dies sieht dann wie folgt aus:
    Textvariable 1:   aaaaaa
    Textvariable 2:   bbbbbb_d
    Textvariable 3:   cc_ddd
    Textvariable 4:   ee_ff_gg_hh
    Die Länge des Namens sowie die Anzahl doppelter Underline variiert.
    Kann mir jemand weiterhelfen, wie ich das in Diadem Script am einfachsten hinkriege?
    Vielen Dank

    Hallo siipo!
    am einfachsten ist die Verwendung des VBS Befehls Split der sein Ergebnis in ein Array speichert. Das Beispiel gibt das Ergebnis aus:
    Option Explicit
    Dim sgName
    Dim asgNames
    asgNames = Split( "aaaaaa__bbbbbb_d__cc_ddd__ee_ff_gg_hh__iii","__")
    MsgBox UBound(asgNames)+1 & " Teile gefunden"
    For Each sgName In asgNames
    MsgBox sgName
    Next
    Matthias
    Matthias Alleweldt
    Project Engineer / Projektingenieur
    Twigeater?  

  • Assign value to a record in a loop?

    I have the record as following:
    TYPE Curr_Select_Rec IS RECORD
    ser_date date,
    blk_route varchar210)
    p_select Curr_Select_Rec;
    How do I assign value to it in a loop?
    I know I can do this
    p_select.blk_route := 'aaaa';
    but in the loop
    Loop
    How??????
    end loop;
    NEXT, LAST, FIRST Did not work
    null

    Hi,
    here a little package I wrote to select a table into a plsql_table and to work with the pl/sql table .
    Package STIL_utils
    IS
    type r_export_tags is record
    (bezeichnung stilvorlagen.bezeichnung%TYPE,
    start_tag stilvorlagen.text_beginn%TYPE,
    end_tag stilvorlagen.text_ende%TYPE);
    type t_export_tags is table of r_export_tags
    index by binary_integer;
    procedure fill_tag_table(p_export_tags in out t_export_Tags,
    p_export_typ in varchar2);
    procedure show_tag_table(p_export_tags in t_export_Tags);
    procedure find_tag(p_export_tags in out t_export_tags,
    p_export_typ in varchar2,
    p_tag_typ in varchar2,
    p_start_tag in out stilvorlagen.text_beginn%TYPE,
    p_end_tag in out stilvorlagen.text_ende%TYPE);
    END; -- Package Specification UTL_STIL
    Package Body STIL_utils
    IS
    -- Stilvorlagen Array
    procedure show_tag_table(p_export_tags in t_export_tags)
    is
    v_index number;
    v_index_last number;
    begin
    v_index := p_export_tags.first;
    v_index_last := p_export_tags.last;
    loop
    dbms_output.put_line(p_export_Tags(v_index).bezeichnung);
    dbms_output.put_line(p_export_Tags(v_index).start_tag);
    dbms_output.put_line(p_export_Tags(v_index).end_tag);
    exit when v_index = v_index_last;
    v_index := p_export_Tags.next(v_index);
    end loop;
    end;
    procedure fill_tag_table(p_export_tags in out t_export_Tags,
    p_export_typ in varchar2)
    is
    cursor tags is
    select bezeichnung,text_beginn,text_ende
    from stilvorlagen
    where bezeichnung like p_export_typ&#0124; &#0124;'_%'
    and loesch_kz is null;
    v_count number := 0;
    --Prozedur zur Ermittlung welche Tags verwendet werden sollen.
    -- Aus der Tabelle Stilvorlagen wird ein Array mit den Start und
    --Ende Tags des entsprechenden Export Typs gef|llt.
    begin
    for rec in tags
    loop
    p_export_tags(v_count).bezeichnung := rec.bezeichnung;
    p_export_tags(v_count).start_tag := rec.text_beginn;
    p_export_tags(v_count).end_tag := rec.text_ende;
    v_count := v_count + 1;
    end loop;
    --show_tag_table(p_export_tags);
    end;
    procedure find_tag(p_export_tags in out t_export_tags,
    p_export_typ in varchar2,
    p_tag_typ in varchar2,
    p_start_tag in out stilvorlagen.text_beginn%TYPE,
    p_end_tag in out stilvorlagen.text_ende%TYPE)
    is
    v_index number;
    v_index_last number;
    v_bezeichnung stilvorlagen.bezeichnung%TYPE;
    begin
    v_index := p_export_tags.first; --Arrayindex setzen
    v_index_last := p_export_Tags.last; --Abbruchkriterium ermitteln
    p_start_tag := null;
    p_end_tag := null;
    loop
    v_bezeichnung := p_export_tags(v_index).bezeichnung;
    -- Ist das der richtige Tag?
    if v_bezeichnung = p_export_typ&#0124; &#0124;'_'&#0124; &#0124;p_tag_typ then
    p_start_Tag := p_export_tags(v_index).start_Tag;
    p_end_Tag := p_export_tags(v_index).end_Tag;
    -- Tag gefunden also raus
    exit;
    else
    -- Wenn alle getestet, dann raus
    exit when v_index = v_index_last;
    -- Ndchstes Feld aus Array
    v_index := p_export_Tags.next(v_index);
    end if;
    end loop;
    end;
    END; -- Package Body UTL_STIL
    Hope that helps
    Detlev
    null

  • Mehrere variablendateien

    Hallo!
    Ich würde gerne in Abhängigkeit von Usereingaben unterschiedliche Variablendateien kumulativ aktivieren; also eine Defaultvariablendatei, eine mit Variablen aus dem ersten Anwenderdialog, eine mit Variablen aus dem zweiten Anwenderdialog etc. Da jeweils mehrere Möglichkeiten bestehen, würde der Aufwand, alle möglichen Kombinationen in eigene Variablendateien zu fassen, immens hoch werden; vor allem, da sich einige Einstellungen erst nach und nach ergeben.
    Ich weiss, dass eigentlich beim Aktivieren einer Variablendatei die aktuellen User-Variablen gelöscht werden. Gibt es eine Möglichkeit, dieses Verhalten zu umgehen?
    Grüße,
    Julia

    Hallo Julia,
    es gibt beim Befehl UserVarCompile die Möglichkeit als Parameter "new" oder "append" zu wählen. Am besten mal in der DIAdem-Hilfe anschauen, das sollte schon deine Lösung sein. Du kannst aber auch in Abhängigkeit deiner Dialoge oder im Verlauf deines Scriptes weitere Variablendefinitonsdateien "dynamisch" als Textdatei wegschreiben und dann erst aktivieren, was zum Beispiel sinnvoll ist, wenn du ein Array definieren möchtest, aber am Anfang deines Scriptes noch nicht weißt, wie groß es sein soll...
    Gruß Sven...

  • Synchronisierung von DAQ (als Waveform) und CAN Daten mit Hilfe des RTSI Buses

    An einem unserer Prüfstände erfolgt die Datenerfassung über eine DAQ und zweier CAN Karten. Die Syncronisierung der Daten (DAQ als Waveform)soll jetzt über den RTSI Bus erfolgen.
    Dafür habe ich das Beispiel "DAQ-AI CAN-Receive Example.vi" modifiziert, indem ich das VI "AI Read (scaled array).vi" gegen das VI "AI Read (waveform).vi" getauscht habe.
    Leider erhalte ich von den DAQ Daten keinen Timestamp. Wie muss man das Beispiel modifizieren, damit auch einen Timestamp von den DAQ Daten erhalte ?

    Wenn das AI Read VI auf Waveform Output geschaltet wird, ist der Timestamp automatisch dabei. Der Waveform Datentyp ist ein Cluster bestehend aus t0, dt und ein messwert Array. Um den Passenden Zeitstempel zu den Messwert zu extrahieren, muß programmatisch hervorgegangen werden: Array Index 0 hat Zeitstempel = t0, Index 1 hat t0 + dt, Index 2 hat to + 2*dt, Index 3 hat t0 + 3*dt, ... mit dem VI Get Waveform Components, kann man die einzelnen Komponenten extrahieren. Bitte daran denken das AI read ein Array von Waveform ausgibt, also ist eine Indizierung (index Array) in voraus notwendig um einzelne Elemente aus diesem array zu extrahieren.
    hoffe das hilft weiter

Maybe you are looking for

  • QuickTime 7.6.6 crashes every time I attempt to open it.

    I was attempting to play Civilization IV on OS X 10.6.8 and it told me I needed to install Quicktime 6.0 or newer. QuickTime 10.0 is already installed with the OS, but I thought I'd try downloading 7.6.6 from Apple. It seemed to install without any p

  • ABAP Mapping - Message shown in Standard Change List Process Log

    Hi I am working with ABAP Mapping program. I had created ABAP class using ABAP workbench. Before this, in exchangeProfile..data was provided for com.sap.aii.repository.mapping.additionaltypes ==>> as " R3_ABAP|Abap-class;R3_XSLT|XSL (ABAP Engine) " a

  • Profit center line item Display

    Dear SAP Guru,   When i post advance payment to vendor ,  in this case in g/l line item advance payment g/l show the Profit center , but when i check in t.code : KE5Z ( Profit center actual line item )  thr. advance payment g/l a/c does not diaply as

  • Error while parsing the Tag Library Descriptor

    Hi, We are installing LC ES2 on Suse64 / weblogic platform. When the adobe-conmtentservices application is starting, we see a lot od error like this: <Mar 24, 2010 10:56:53 AM CET> <Warning> <HTTP> <BEA-101196> <[/contentspace]: Error while parsing t

  • Vertical menu using javascript and css

    Hi all, I have to build a vertical top-level menu for a customer. for a few days I surfing the internet to find a good sample. The only sample I found is http://javascript.internet.com/navigation/expanding-menu.html. this is what the customer wants.