Extracting arrays from cases, 2nd try

Hallo,
since my first trys of this topic was unclear, I try it again:
I have a case structure with two cases:
case 1: 2D-arrays, case 2: 1D-arrays and Strings
In the two subcases you have another select case -- structure with various cases:
case 1: subcase 1, subcase 2 etc.
case 2: subcase 1, subcase 2 etc.
I want to save the arrays and the strings to one text-file. How can I do that? If I connect a wire to one of the arrays, the VI doesn't run because of a "tunneling error" (missing assignment to tunnel).
I know how to write arrays to a file, my problem is getting them out of the case-structure.
Hoping fr help,
Arno

Hallo,
>> Since Case 1 and Case 2 output different data types, you cannot put them on the same wire. Why don't you put the save operation inside the case structure, in case 1 you save the 2D array and in case 2 you save the 1D array and strings. <<
That works (I already tried), but I cannot use that idea because of two reasons: First, I want to save all the arrays and strings to ONE file in an order I decide. Second, the VI should do that with approx. 10 arrays / strings and that 100 times for 100 files. Working with temporary files is not possible.
>> Alternatively, you can convert your data in each case to the final string result to be saved, which you then can save using write characters to file at a later point in the code. Since only a
string leaves the case structure, there is no data conflict. <<
My problem is not a data conflict (arrays, strings etc.) but getting the data out of the case-structure. I don't even get a simple string constant out of it.
To make my problem clear, I attached a simple (not running) VI. "Your task" is getting the data out of the structures.
Arno
Attachments:
readdatafromcase.vi ‏12 KB

Similar Messages

  • Extracting array from loaded xml

    I'm using Flex 4 in an AIR project and need to load the following xml text file
    <list>
        <month name="Jan-04" revenue="400263" average="80052">
            <region name="APAC" revenue="46130"/>
            <region name="Europe" revenue="106976"/>
            <region name="Japan" revenue="79554"/>
            <region name="Latin America" revenue="39252"/>
            <region name="North America" revenue="128351"/>
        </month>
        <month name="Feb-04" revenue="379145" average="75829">
            <region name="APAC" revenue="70324"/>
            <region name="Europe" revenue="88912"/>
            <region name="Japan" revenue="69677"/>
            <region name="Latin America" revenue="59428"/>
            <region name="North America" revenue="90804"/>
        </month>
    </list>
    The original example (the old Flex 2 Dashboard example) used
       <mx:HTTPService id="srv" url="results.xml" useProxy="false" result="resultHandler(event)"/>
    to load the xml file, then used the line:
                monthData = event.result.list.month.source as Array;
    to convert the text to an array. Since this is an AIR project I'm using Filestream etc. to load the file but cannot convert it to an array. Not sure why. Here is the filestream code:
    private function loadFile():void{
    var file:File = File.applicationDirectory.resolvePath("results.xml");
    var fileStream:FileStream = new FileStream();
    fileStream.open(file, FileMode.READ);
    var xmlList:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
    fileStream.close();
    monthData = xmlList.month.source as Array;
    trace(monthData);
    but the trace is always null no matter what I try.

    Ignore all the httpService vs Filestream, the xml seems to be loading ok but I can't extract the array from the xml. The original example was from Flex 2 so I'm not sure if something has changed but the original
    monthData = xmlXML.month as Array;
    doesn't work. The xml seems fine as I can extract anything from it.
    trace(xmlXML.month[2].region[0].@name);
    I just can't turn it into an Array like in the original.

  • How extract data from case structure

    Hi all, I would like to extract the data from case structure, it's circled in red in the attached file. How should I do it? Thanks for taking your time to look at my post. Your help is greatly appreciated.
    Attachments:
    bp.jpg ‏161 KB

    Thank you guys for your prompt reply.
    As u can see from the vi, there's an error, I need the values in the circled area to be passed on to the block ( Bundled by name)
    Thanks !
    Attachments:
    fyp_bp_only.vi ‏90 KB
    fyp_bp_only.vi ‏90 KB

  • How can I download music, etc. to my Iphone 5 from my 2 previous Itunes accts.? When I download from one acct. and then try to download the items from my 2nd acct. I am told it will erase the items I downloaded from the 1st account......How can I get all

    I have 2 Itunes accts. from previous Iphones. I now want to put the music, apps, etc onto my new phone from both accounts. When I sync one account to my new phone and try to sync the other items from my 2nd account - it wants to erase all of the items I synced from the 1st account. Please help! ????

    There is no solution other than getting all of your content into a single iTunes library. By design, iPhone syncs or manually manages with one computer/iTunes account at a time.

  • How to extract text from a PDF file?

    Hello Suners,
    i need to know how to extract text from a pdf file?
    does anyone know what is the character encoding in pdf file, when i use an input stream to read the file it gives encrypted characters not the original text in the file.
    is there any procedures i should do while reading a pdf file,
    File f=new File("D:/File.pdf");
                   FileReader fr=new FileReader(f);
                   BufferedReader br=new BufferedReader(fr);
                   String s=br.readLine();any help will be deeply appreciated.

    jverd wrote:
    First, you set i once, and then loop without ever changing it. So your loop body will execute either 0 times or infinitely many times, writing the same byte every time. Actually, maybe it'll execute once and then throw an ArrayIndexOutOfBoundsException. That's basic java looping, and you're going to need a firm grip on that before you try to do anything as advanced as PDF reading. the case.oops you are absolutely right that was a silly mistake to forget that,
    Second, what do the docs for getPageContent say? Do they say that it simply gives you the text on the page as if the thing were a simple text doc? I'd be surprised if that's the case.getPageContent return array of bytes so the question will be:
    how to get text from this array? i was thinking of :
        private void jButton1_actionPerformed(ActionEvent e) {
            PdfReader read;
            StringBuffer buff=new StringBuffer();
            try {
                read = new PdfReader("d:/getjobid2727.pdf");
                read.getMetaData();
                byte[] data=read.getPageContent(1);
                int i=0;
                while(i>-1){ 
                    buff.append(data);
    i++;
    String str=buff.toString();
    FileOutputStream fos = new FileOutputStream("D:/test.txt");
    Writer out = new OutputStreamWriter(fos, "UTF8");
    out.write(str);
    out.close();
    read.close();
    } catch (Exception f) {
    f.printStackTrace();
    "D:/test.txt"  hasn't been created!! when i ran the program,
    is my steps right?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Extracting Images from EPS - Problem with the Output

    Hello,
    I got a big problem extracting images from an EPS, which has been made in InDesign. The image does not appear correct.
    Source code:
    %ALDImageFileName: Speicher:image.jpg
    %ALDImageDimensions: 30 30
    %ALDImageCropRect: 0 0 30 30
    %ALDImageCropFixed: 0 0 30 30
    %ALDImagePosition: 203.8677 344.8913 203.8677 359.2913 218.2677 359.2913 218.2677 344.8913
    %ALDImageType: 4 8
    %%BeginObject: image
    [14.4 0 0 14.4 203.868 344.891 ]ct
    snap_to_device
    Adobe_AGM_Image/AGMIMG_fl cf /ASCII85Decode fl /RunLengthDecode filter ddf
    <<
    /T 1
    /W 30
    /H 30
    /M[30 0 0 -30 0 30 ]
    /BC 8
    /D[0 1 0 1 0 1 0 1 ]
    /DS [
    [AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
    [AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
    [AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
    [AGMIMG_fl 30 string /rs cvx /pop cvx] cvx
    /O 3
    >>
    %%BeginBinary: 1
    img
    p&G-p!<E*"!<<3"!!!&i!!30$!Vl`q!V$-m!WW3&!r`0#!Wh]h!!20]!WW3$qZ$^!!!!&f!!30$!WE'!
    !WE'$!<<*#nc/[l!W<!#!WW3%h>dNVnGiXl!<<-)!!*'"!<<2f!<*$!!<3)a!!!&t!!*-%kl:\ar;Zm"
    !!2He#6G2G(D[>Z!<*#e!!WKUEK,/l!r`0"!V$.!!Wi?'-t[mD-NjDN!!2Zk!!3#u"T\]4$OR%8!!!&h
    !!<6)*\I@D!\,8pq>g3h%KQP0';ta-rr2ho&-2b3mf3Y*Q/q,jk2D[9"76'h!=o#B!Y,22n,Nn!!!=Q!
    0.ee,0/"XS!VHHl!!E<'!"[l]rrUsd!Ug!r&'a/!k3(mej38#8mJm8&'`/UF'`J.(!"8l.+"o,p/hSe-
    /M8.8!!<6%!i#Yn!<2rs!2Ao^$NZFPk2tpjkND!jP3r;O%29TU'`o-b%e'H-!=:8,0/"h-.kN>(.gkeH
    "T^(Js8W&srrE$$rr;gE!V-4"""*$ljlY^djQYmmi$\'q!W`9(p([Q1nc/dn!#@(:r[nC..kE8)/emgU
    !<IHErs8W(rr<#trr76B!:p1!CZadBk2kmhj65^iD"%E-$5O?k'`&OE$M"0,!<<uh0.ee0/h\e,/h.k2
    !!*+arVm-$s8W)us8J2U!;Z[(L?.U[kN:sflf@0hK^f$D!=T\>'a5?f'c%2YnGit6/1iM*/1iA*.kWFi
    nc/dn!I+SBqYpWrrcdo5!<N60C$4[@ki_*hl0.?lD".K0!=9MV'c%S_'`f!Vnc01&!!t50/M8P+/h8J)
    .gH+F!!+PDrVllsrVlrp.KT,@#QauQip#Ifk3*$4ki:gb-3Nc<$j.4Z'GV>s'bqJt('F(,%06GL/hJ_.
    .k<;..j"f]!!32!rql]tr;WMmmf3c`k2tsgk2tmikEZ,Kn,NJ!'`/UJ'G_,X!V-6i!=L8*/2&S./M&=P
    !!2Ti"9AV]s8N#t"o\JY&c_t$!"-g0j6,RdkNBr!!r2ii!!!]1'a,9f'*84(!"Ar/""YuT/M8Y)!WW3$
    nc0%!!!!Z$s8N#ts76`i!"T,3!!3\bl0.?qjkC7H!!;`lrW!!#!>PMJ!u;Ub!Ug$f!=JlU/M/S*/ggZ#
    !!2Ng$3K)as8N&tjT#8]m/R@3k2b[ck03)j!>?4H'`\p6!!**(r[e6p.kWIZmJm:h!#kk:#.sp7ru_:B
    mJmV6jQ>U%kN:kH!!!)h!!!'!'`\gE'`eC:mf3^r!=pb8/ds9_.h;[J!!u[*s8GIerr6%#m/RGck3(kk
    kNM&%!Up'o!<<*)'bhDfrY5G=!Vufj!"K#0!#mOB.0(kM0,afj!V$-u!<A8^s6B[Es8S8_!U]poKBMCG
    !7'`iKECN@#RhF_'*&[\'b'X5r;[9-!$a!F*W[<7.jP)q!V-4#!<<,As8T>(W;lnB!!!&g!"63skFhmD
    jlEuS!!2Ng#S7^d%KHtR'bTm7!s/H(/-mj['`\n!/1Ukk!"985s8@'?Du]k7%KHP#!"8l0$KC71C'%l,
    jl$a?!!<6%!!3'6!X\o6rY5J8!!2Qh#Ri::0*_I`/1U`S%.4)q5Q:Zg2ukf6s8P=a!V$-t!]]?)jY?ff
    kN:qhmJmFp()7Pf!!N99!!Vcj$l1NL.KKPM/1iIi!!3'!o`,F%!dakFpBL[$pAb/A!Up's!H@5cf`qK\
    hWF!BmJmV%'GV;_!!*`J'FFm3!!WH(!?WpE,Q7ZH+tP;f!!2foq>^W-s8Tn6!!L"8s0r.!!">[bkcXsf
    !3>;FU]CPd!!<]G'bL?E!tZ.^&+9K$!\#`P)?'U>'eM$g!!2Zk!W`9$$g.KhLB.ATL&_2?"7Q9n!RU)n
    I/X*KGN@l9"Rc<t',;8j!!!$,'bhAP!!WQ+!"US5%fQG1%PKFQn,NUm!*fL'9)\en8,rO]!V-4"!rrBu
    jQ/].!WYOLl&b?6"9AcD'aFX;"9oSU%0>nt$NV(q!rr<%"YC_q"7Z@"!<<+Eq@Wc/!#,C9"9&;k!!E?)
    D;u0+!!<qtS-&0["T\T'$5EXA!!33:%da5t!<<]/!!3u<!V$-o!<<*#!FZ$-!!A;d!!2ipq#CKu!<?7$
    !!WK)KEM8T"RZ6i$2so,!<<Q0li77k!!30$!<</h!!!'!!!E<'!!!&c!"8o/!!*'#"98E'!WW;h!!!'!
    !!NB'!<<*#n,N[o!<<*#!!!'!!!!&f!!E<&!!*-"!!!'!!!**%o)K!s!!*-$!<<*#!!<-"!Wi?&l2Ueb
    rVup!q#Gp~>
    %%EndBinary
    %%EndObject
    Orginal image Size 553,9 KB
    After decoding the size is only 1,8 KB
    First try.
    public class ASCII85Decode {
    private ByteBuffer buf;
    * initialize the decoder with byte buffer in ASCII85 format
    private ASCII85Decode(ByteBuffer buf) {
    this.buf = buf;
    * get the next character from the input.
    * @return the next character, or -1 if at end of stream
    private int nextChar() {
    // skip whitespace
    // returns next character, or -1 if end of stream
    while (buf.remaining() > 0) {
    char c = (char) buf.get();
    if (!isWhiteSpace(c)) {
    return c;
    // EOF reached
    return -1;
    public static boolean isWhiteSpace(int c) {
    return (c == ' ' || c == '\t' || c == '\r' || c == '\n'
    || c == 0 || c == 12);
    // 0=nul, 12=ff
    * decode the next five ASCII85 characters into up to four decoded
    * bytes.  Return false when finished, or true otherwise.
    * @param baos the ByteArrayOutputStream to write output to, set to the
    *        correct position
    * @return false when finished, or true otherwise.
    private boolean decode5(ByteArrayOutputStream baos)
    throws PDFParseException {
    // stream ends in ~>
    int[] five = new int[5];
    int i;
    for (i = 0; i < 5; i++) {
    five[i] = nextChar();
    if (five[i] == '~') {
    if (nextChar() == '>') {
    break;
    } else {
    throw new PDFParseException(
    "Bad character in ASCII85Decode: not ~>");
    } else if (five[i] >= '!' && five[i] <= 'u') {
    five[i] -= '!';
    } else if (five[i] == 'z') {
    if (i == 0) {
    five[i] = 0;
    i = 4;
    } else {
    throw new PDFParseException(
    "Inappropriate 'z' in ASCII85Decode");
    } else {
    throw new PDFParseException(
    "Bad character in ASCII85Decode: " + five[i]
    + " (" + (char) five[i] + ")");
    if (i > 0) {
    i -= 1;
    int value = five[0] * 85 * 85 * 85 * 85 + five[1] * 85 * 85
    * 85 + five[2] * 85 * 85 + five[3] * 85 + five[4];
    for (int j = 0; j < i; j++) {
    int shift = 8 * (3 - j);
    baos.write((byte) ((value >> shift) & 0xff));
    return (i == 4);
    * decode the bytes
    * @return the decoded bytes
    private ByteBuffer decode() throws PDFParseException {
    // start from the beginning of the data
    buf.rewind();
    // allocate the output buffer
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    // decode the bytes
    while (decode5(baos)) {
    return ByteBuffer.wrap(baos.toByteArray());
    * decode an array of bytes in ASCII85 format.
    * <p>
    * In ASCII85 format, every 5 characters represents 4 decoded
    * bytes in base 85.  The entire stream can contain whitespace,
    * and ends in the characters '~&gt;'.
    * @param buf the encoded ASCII85 characters in a byte buffer
    * @param params parameters to the decoder (ignored)
    * @return the decoded bytes
    public static ByteBuffer decode(ByteBuffer buf)
    throws PDFParseException {
    ASCII85Decode me = new ASCII85Decode(buf);
    return me.decode();
    2. Try
    public class Ascii85Decode {
    private final FileOutputStream fos;
    private Ascii85Decode() throws FileNotFoundException {
    File f = new File("/home/markus/1/test/bild.jpg");
    fos = new FileOutputStream(f);
    @Override
    protected void finalize() throws Throwable {
    fos.close();
    super.finalize();
    public static byte[] decode(byte[] in) throws FileNotFoundException, IOException {
    Ascii85Decode ascii85Decode = new Ascii85Decode();
    ascii85Decode.setData(in);
    ascii85Decode.decode85();
    return null;
    static long pow85[] = {85 * 85 * 85 * 85, 85 * 85 * 85, 85 * 85, 85, 1};
    private byte[] in;
    private void setData(byte[] in) {
    this.in = in;
    void wput(long tuple, int bytes) throws IOException {
    switch (bytes) {
    case 4:
    putchar((int) (tuple >> 24));
    putchar((int) (tuple >> 16));
    putchar((int) (tuple >> 8));
    putchar((int) tuple);
    break;
    case 3:
    putchar((int) (tuple >> 24));
    putchar((int) (tuple >> 16));
    putchar((int) (tuple >> 8));
    break;
    case 2:
    putchar((int) (tuple >> 24));
    putchar((int) (tuple >> 16));
    break;
    case 1:
    putchar((int) (tuple >> 24));
    break;
    void decode85() throws IOException {
    long tuple = 0;
    int c, count = 0;
    int i=0;
    for (;;) {
    switch (c = in[i]) {
    default:
    if (c < '!' || c > 'u') {
    System.err.println("%s: bad character in ascii85 region: %#o\n");
    System.exit(1);
    tuple += (c - '!') * pow85[count++];
    if (count == 5) {
    wput(tuple, 4);
    count = 0;
    tuple = 0;
    break;
    case 'z':
    if (count != 0) {
    System.err.println("%s: z inside ascii85 5-tuple\n");
    System.exit(1);
    putchar(0);
    putchar(0);
    putchar(0);
    putchar(0);
    break;
    case '~':
    if (in[i+1] == '>') {
    if (count > 0) {
    count--;
    tuple += pow85[count];
    wput(tuple, count);
    c = in[i+1];
    return;
    System.err.println("%s: ~ without > in ascii85 section\n");
    System.exit(1);
    case '\n':
    case '\r':
    case '\t':
    case ' ':
    case '\0':
    case '\f':
    case '\b':
    case 0177:
    break;
    i++;
    private void putchar(int l) throws IOException {
    //System.out.write(l);
    fos.write(l);
    Does anybody have an idea to solve the problem?

    A scan from string function can be used as per the attachment. The double \ ('\\') is in the format string in order to interpret the '\' characters in your input string as literal characters and not special formatting.
    Message Edited by Dennis Knutson on 07-10-2006 03:53 PM
    Attachments:
    Scan From String.JPG ‏5 KB

  • How to output last 4 arrays from a For Loop?

    Hi People,
    I am almost at the end of my tether. I really hope someone could please help me.
    Any input would be welcome. VI attached.
    VI explanation:
    I initialize an array.
    The random number generator simulates my camera input.
    Depending on which iteration it is, the data is added into one of four output arrays.
    'x-y*floor(x/y)' gives a remainder value of 0, 1, 2 or 3.
    'Case Selector' just adds 1 to 'x-y*floor(x/y)' to get case 1, 2, 3 or 4.
    Shots 1, 5, 9 etc are added to Array 1 (Case 1).
    Shots 2, 6, 10 etc are added to Array 2 (Case 2).
    Shots 3, 7, 11 etc are added to Array 3 (Case 3).
    Shots 4, 8, 12 etc are added to Array 4 (Case 4).
    Averaged Output displays the averaged value i.e. the total value divided by the number of shots saved in that array ('Set (IQ+1)').
    My problems are:
    1) I would like to output only the last 4 sets of data from the Averaged Output 1, 2, 3 and 4 to 4 different files (i.e. save as .csv what is displayed onscreen in indicators 'Averaged Output 1', 2, 3 and 4 at the end of all iterations.
    Where should I place my file save diagram disable so that it does this?
    Putting it outside the main For Loop with auto-indexing on gives me one file with all previous data. (This is not feasible as my number of shots should number in the thousands)
    Putting it outside the main For Loop with auto-indexing off gives me only the last set of data. (I need the output for 4 Arrays, not just the last run)
    Putting it inside the main For Loop (as shown) gives me the same number of files as number of iterations. (Again not feasible due to large number of files that will be generated and slow camera capture)
    For the sake of fast camera capture, I would like these 4 files to only output once all the image captures are complete.
    2) Would preferably like to name the file once and for the programme to append '(1)', '(2)', '(3)' and '(4)' to filename of the appropriate 'Averaged Output' Arrays but file path controls are another big headache for me.
    3) P.s. is initializing one array enough to avoid using Memory Manager? Or should I initialize 4 arrays?
    I am using Labview 2010.
    Thanks so much,
    Jaslyn
    Solved!
    Go to Solution.
    Attachments:
    Help Understanding Arrays and file paths (10).vi ‏26 KB

    Thanks so much Lennard!!
    Hi JKSH,
    I've been busy trying to complete the dang code, but for completeness so that other users can learn too, I shall answer your queries. Thanks for looking in.
    First, what do you mean by "add"? Your code in your case strcuture sums your input values, so your array size doesn't change. However, you also said "Putting it outside the main For Loop with auto-indexing on gives me one file with all previous data. (This is not feasible as my number of shots should number in the thousands)" -- it sounds like you are expecting an array with thousands of elements. So, what should "Output Array N" look like?
    Ans: Output Array N should be a 4x4 array of the summation of all the numbers generated during every 4th iteration.
    i.e. if random number 1=1, random number 2=2, etc, And 'No of iterations' is 12,
    Output Array 1 should be 1+5+9:
    15 15 15 15
    15 15 15 15
    15 15 15 15
    15 15 15 15
    (Note: Most of your arrays are 4x4, but in Case #2 you created 128x128. I prersume this is a typo?)
    Ans: Kind of, I'm using a 4x4 array of randomly generated numbers as an example but my actual data will be the 128x128 pixel output of a camera. And during actual experimentation, 'No of Iterations' will number in the thousands.
    Second, why do you add your "simulated camera input" to the "Initialized Array"? You can add it direcly to the previous output inside your case structure.
    Ans: See answer to question 3
    Third, have a look at shift registers: http://www.ni.com/gettingstarted/labviewbasics/shiftregisters.htm. Use them instead of Feedback Nodes to make your code tidier.
    Ans: I did try.. But I can't seem to add shift registers to the case structure, only the for loops outside. Are you sure it can be done..?
    jaslyn wrote:
    1) I would like to output only the last 4 sets of data from the Averaged Output 1, 2, 3 and 4 to 4 different files (i.e. save as .csv what is displayed onscreen in indicators 'Averaged Output 1', 2, 3 and 4 at the end of all iterations.
    Where should I place my file save diagram disable so that it does this?
    For the sake of fast camera capture, I would like these 4 files to only output once all the image captures are complete.
    You will need to call "Write to Text File.vi" 4 times to write 4 files. So, you should finish your loop, then call this VI 4 times.
    Ans: How do I get it to extract the data from each of the 4 cases in my case structure?
    jaslyn wrote:
    2) Would preferably like to name the file once and for the programme to append '(1)', '(2)', '(3)' and '(4)' to filename of the appropriate 'Averaged Output' Arrays but file path controls are another big headache for me.
    You can create strings first, then convert them into paths: http://zone.ni.com/reference/en-XX/help/371361G-01/glang/string_to_path/
    Thanks
    jaslyn wrote:
    3) P.s. is initializing one array enough to avoid using Memory Manager? Or should I initialize 4 arrays?
    I'm not sure what you're asking; can you please clarify what you mean by "avoid using Memory Manager"? But anyway, you've actually initialized FIVE arrays: 1 outside the loop, and 1 inside each case.
    I've read that to avoid fluctuations in memory usage, it is a good idea to initialize arrays to their expected size before the start of data collection. That was just what I was trying to do.

  • Extract arrays according the number of consecutive values

    Hello I would need some help on one problem to search the
    number of consecutive values in an array. I am using Labview 8.1
    First I have a 2D array with 3 columns: Col (A)  Col (B) 
    Col (C). I would like to plot points from Col( B)=f(ColC) at Constant
    value in Column A. The problem is that in Column A the values changes. My
    problem is to extract arrays when the values in column A are the same and when
    the number of values is higher than a number that I can choose. In my case I
    chosse this number by the threshold function on the peak detector.
    Let ‘s take an exemple:
    Col (A)            Col(B)              Col(
    C)
    12                    343                  45
    654                  65                    33                               
    121                  65                    65                   
    18                    31                    45                   
    12                    456                  98       
    787                  361                  787
    121                  156                  123     
    12                    32                    545
    Let ‘s say I want to plot Col(B)=f( Col(C)) at constant value in
    Column A when I have more than 2 constant values in Column A
    The aim would be to have different arrays to plot 2
    different graphs for different constant value in Col( A).
    Col (A)            Col
    (B) Col( C)                        Col (A)            Col(B)              Col(C)
    12                    343                  45                       121                  65                    65       
    12                    456                  98           &          121                  156                  123
    12                    32                    545
     What I do with the VI is:
    1)      sort
     the 2D arrays accordind the values in
    the Col (A) and extract Col(A)
    2)      Search
    the index of elements in Column A when they I do not have consecutive values
    3)      Subtract
    each new indexes indexes 2 by 2: this gives me the number of consecutive values
    in a new array.
    4)      Detect
    the indexes of the peak (number of consecutive values) that I want (in the
    exemple= 2)
    My problem is now to come back in
    the initial array and extract the arrays that has more than n  consecutive values
    (n=2 in the exemple) according to the index found by the peak values.
     I am sure that there is a simpler
    and better way to do this (maybe by a for loop or by using an histogram);
    Thank in advance for the help
    Olivier
    Attachments:
    extract values.vi ‏33 KB

    First, I wanted to thank you, Kumar for the quick answer: 5
    stars for the answer, this is exactly what I was looking for. I would not have
    found it by myself.
    I have an other problem to plot now Col( B)=f (Col( C))
    What I would like to do is plot Col (B)=Col (C) with
    different plots (colour) on a same graph when the value in column A changes.
    I managed to have 2 arrays (thanks to the forum with some
    modifications):
    -One to tell me each first indexes when the value changes
    -One to tell me each last indexes when the values changes
    My idea would be to use theses indexes to split the initial
    array by  a loop when the value in Column
    A changes and then in an other loop  (or
    in the same) connect the XY graph to the build arrays.
    The only problem is that before running Labview I do not
    know how many different values in column A I have so I do not know how many
    arrays will be created when I will try to split the initial array.
    Is someone know if this solution is possible?
    Thank you in advance for the help.
    Olivier

  • Hi i am new to labview. i want to extract data from a text file and display it on the front panel. how do i proceed??

    Hi i am new to labview
    I want to extract data from a text file and display it on the front panel.
    How do i proceed??
    I have attached a file for your brief idea...
    Attachments:
    extract.jpg ‏3797 KB

    RoopeshV wrote:
    Hi,
    The below code shows how to read from txt file and display in the perticular fields.
    Why have you used waveform?
    Regards,
    Roopesh
    There are so many things wrong with this VI, I'm not even sure where to start.
    Hard-coding paths that point to your user folder on the block diagram. What if somebody else tries to run it? They'll get an error. What if somebody tries to run this on Windows 7? They'll get an error. What if somebody tries to run this on a Mac or Linux? They'll get an error.
    Not using Read From Spreadsheet File.
    Use of local variables to populate an array.
    Cannot insert values into an empty array.
    What if there's a line missing from the text file? Now your data will not line up. Your case structure does handle this.
    Also, how does this answer the poster's question?

  • Extracting Data from Essbase using ODI fails with: Cannot calculate file.

    I'm try to Extract Data from Essbase using ODI KM (LKM Hyperion Essbase DATA to SQL). I'm using
    CalcScript for EXRACTION_QUERY_TYPE. CalcScript in my case resides on Essbase App directory, so I
    just specify the name (i.e. FULLEXP) for EXTRACTION_QUERY_FILE. Before creating ODI interface
    I ran CalcScript successfully from EAS. Also, ODI and Essbase are on different servers. ODI Agent
    is not running on Essbase Server, but ODI Agent has access to file generated by CalcScript.
    EPM Fusion Version 11.1.2.2. Essbase running in LINUX and ODI 11g running on Windows Server.
    Created the ODI interface where source is my Planning Cube and target is a relational table using SYNOPSIS
    MEMORY Engine for staging area. I make it thru the following ODI interface steps OK:
    1 - Loading - SrcSet0 - Drop work table
    2 - Loading - SrcSet0 - Create work table
    3 - Loading - SrcSet0 - Begin Essbase Data Extract.
    I then fail at:
    4 - Loading - SrcSet0 - Extract Data
    I get the following Message in ODI Operators console.
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
         at com.hyperion.odi.essbase.ODIEssbaseDataReader.getAppData(Unknown Source)
         at com.hyperion.odi.essbase.AbstractEssbaseReader.extract(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
    com.hyperion.odi.essbase.ODIEssbaseException: com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1013131): Failed to start Asynchronous thread
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:346)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2458)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:48)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
         at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2906)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2609)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:540)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:453)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1740)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:338)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:214)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:272)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:263)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:822)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:123)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
         at java.lang.Thread.run(Thread.java:662)

    I'm try to Extract Data from Essbase using ODI KM (LKM Hyperion Essbase DATA to SQL). I'm using
    CalcScript for EXRACTION_QUERY_TYPE. CalcScript in my case resides on Essbase App directory, so I
    just specify the name (i.e. FULLEXP) for EXTRACTION_QUERY_FILE. Before creating ODI interface
    I ran CalcScript successfully from EAS. Also, ODI and Essbase are on different servers. ODI Agent
    is not running on Essbase Server, but ODI Agent has access to file generated by CalcScript.
    EPM Fusion Version 11.1.2.2. Essbase running in LINUX and ODI 11g running on Windows Server.
    Created the ODI interface where source is my Planning Cube and target is a relational table using SYNOPSIS
    MEMORY Engine for staging area. I make it thru the following ODI interface steps OK:
    1 - Loading - SrcSet0 - Drop work table
    2 - Loading - SrcSet0 - Create work table
    3 - Loading - SrcSet0 - Begin Essbase Data Extract.
    I then fail at:
    4 - Loading - SrcSet0 - Extract Data
    I get the following Message in ODI Operators console.
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
         at com.hyperion.odi.essbase.ODIEssbaseDataReader.getAppData(Unknown Source)
         at com.hyperion.odi.essbase.AbstractEssbaseReader.extract(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
    com.hyperion.odi.essbase.ODIEssbaseException: com.hyperion.odi.essbase.ODIEssbaseException: Cannot calculate file. Essbase Error(1013131): Failed to start Asynchronous thread
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:346)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2458)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:48)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
         at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2906)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2609)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:540)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:453)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1740)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:338)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:214)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:272)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:263)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:822)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:123)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
         at java.lang.Thread.run(Thread.java:662)

  • Programmatically create array from common cluster items inside array of clusters

    I have seen many questions and responses on dealing with arrays of clusters, but none that discuss quite what I am looking for. I am trying to programmatically create an array from common cluster items inside array of clusters. I have a working solution but looking for a cleaner approach.  I have an array of clusters representing channels of data.  Each cluster contains a mixture of control data types, i.e.. names, types, range, values, units, etc. The entire cluster is a typedef made up of other typedefs such as the type, range and units and native controls like numeric and boolean. One array is a “block” or module. One cluster is a channel of data. I wrote a small vi to extract all the data with the same units and “pipe” them into another array so that I can process all the data from all the channels of the same units together.  It consists of a loop to iterate through the array, in which there is an unbundle by name and a case structure with a case for each unit.  Within a specific case, there is a build array for that unit and all the other non-relevant shift registers pass through.  As you can see from the attached snapshots, the effort to add an additional unit grows as each non-relevant case must be wired through.  It is important to note that there is no default case.  My question:  Is there a cleaner, more efficient and elegant way to do this?
    Thanks in advance!
    Solved!
    Go to Solution.
    Attachments:
    NI_Chan units to array_1.png ‏35 KB
    NI_Chan units to array_2.png ‏50 KB

    nathand wrote:
    Your comments made me curious, so I put together a quick test. Maybe there's an error in the code (below as a snippet, and attached as a VI) or maybe it's been fixed in LabVIEW 2013, but I'm consistently getting faster times from the IPE (2-3 ms versus 5-6ms for unbundle/index). See if you get the same results. For fun I flipped the order of the test and got the same results (this is why the snippet and the VI execute the tests in opposite order).
    This seems like a poster child for using the IPES!  We can look at the index array + replace subset and recognize that it is in place, but the compiler is not so clever (yet!).  The bundle/unbundle is a well-known "magic pattern" so it should be roughly equivalent to the IPES, with a tiny penalty due to overhead.
    Replace only the array operation with an IPES and leave the bundle/unbundle alone and I wager the times will be roughly the same as using the nested IPES.  Maybe even a slight lean toward the magic pattern now if I recall correctly.
    If you instantly recognize all combinations which the compiler will optimize and not optimize, or you want to exhaustively benchmark all of your code then pick and choose between the two to avoid the slight overhead.  Otherwise I think the IPES looks better, at best works MUCH better, and at worst works ever-so-slightly worse.  And as a not-so-gentle reminder to all:  if you really care about performance at this level of detail: TURN OFF DEBUGGING!

  • How to extract information from client security certificates and display it

    Hi guys,
    just wanted to know is it possible to extract information from an digital security certificate and get that displayed on top level navigation of the portal. So for ex. I want to extract the clients name and code and area from where they come from to be displayed on top level.
    thanks
    anton

    RoopeshV wrote:
    Hi,
    The below code shows how to read from txt file and display in the perticular fields.
    Why have you used waveform?
    Regards,
    Roopesh
    There are so many things wrong with this VI, I'm not even sure where to start.
    Hard-coding paths that point to your user folder on the block diagram. What if somebody else tries to run it? They'll get an error. What if somebody tries to run this on Windows 7? They'll get an error. What if somebody tries to run this on a Mac or Linux? They'll get an error.
    Not using Read From Spreadsheet File.
    Use of local variables to populate an array.
    Cannot insert values into an empty array.
    What if there's a line missing from the text file? Now your data will not line up. Your case structure does handle this.
    Also, how does this answer the poster's question?

  • Extracting content from MimeMessage

    I am being passed a MimeMessage Object which would contain some text. Now the problem is that the content type of the MimeMessage comes out to be
    [bold]
    multipart/mixed; boundary="----=_Part_1_2168521.1026163248946"
    [bold]
    In such a case how r u supposed to extract the content from the Mime message. In case I try the getContent method and cast the result to String
    System.out.println("ModifyMsg 307 " + (String) mimeMsg.getContent());it returns a
    [bold]
    java.lang.ClassCastException:
    [bold]
    Totally lost. Any help would be greatly appreciated.

    It depends in the structure of your MimeMessage. I suggest you to check mimeMsg.getContent().getClass().getName(). It is a big chance that you have MimeMultipart object in there, so you should use getPart() on it, and so on and so forth recursively...

  • Extract date from string in T-SQL

    Hi,
    I am having one field(AT_TEXT) in my database that has below kind of values. I want to extract date from this string but the issue is all rows has different format.
    1)One Month Lttr sent on 3/12/2009 due to
    2)One Month Letter sent on 1/15/2009 due to
    3)One Month letter sent on7/15/2011.The amount due             - This has no space between on and 7 and . after yr
    4)One Month letter sent on 7/16/12 due to        - This has 12 instead of 2012(2 positions after 2nd slash/)
    Can anyone please help me to write query to extract date from this string?
    Vicky

    Hi Jingyang
    Li,
    I checked your query and it looks good but I have one issue. So when we reverse it, it looks like below and it is talking that $57.80 as a 1st numeric value and try to convert it into date and giving me error.
    I realize from your query that you are trying to reverse the value and then try to find out 1st Numeric value from that string, but my whole string has another numeric value at the end, like 
    "One Month Letter on 1/15/2009 due to non-pmt of prems-amt to avoid DE is $57.80"
    So when we reverse it, it looks like below and it is taking that $57.80 as a 1st numeric value and try to convert it into date and giving me error.         
    "08.75$ si ED diova ot eud tma - smerp fo tmp-non ot eud 9002/51/1 no retteL htnoM enO"
    Also sometimes I have $ amount at the end and sometimes I don't have any $ amount at the end, like below,
    "One Month letter sent on 10/15/2012 due to non-payment of premiums. The amount due to avoid dise"
    Can you please modify your query which takes only date part not the $ amount and give me?
    Thank you so much for your help 
    Vicky

  • How to Extract Data from Oracle DB ?

    hi,
    I am trying to Extract Data from Oracle DB using DBconnect. and looks like its not working. Not able to connect to Database.
    thanks

    Hi,
    Can you please follw the below steps:
    If you need to load data from an Oracleu2122 database use DB Connect instead of an ETL Tool
    Although limited to full updates, it allows true u201Chands-offu201D automation of data extraction
    Is not limited to Oracleu2122 databases, it supports ALL database systems supported by SAP BW
    DB Connect can read the remote data dictionary, replicate table and views, and transfer metadata into the SAP BW Meta Data Repository.
    1.Begin with your data model
    2.Identify which tables provide:
      Master Data
    Transactional Data
    3.Once the model is complete:
    Obtain a UID and Password from the DBA
    Ensure that table synonyms are not used u2013 they donu2019t work at this point in time (SAP Note # 518241)
    Your UID has to have select permissions on the required database objects.
    4.In the admin workbench open the modeling tab and select Source Systems
    5.In the right pane, right-click on Source Systems and select Createu2026
    6. you have to define the type of source system. Select u201CDatabase Systemu201D
    7.Enter a description for the source system
    8.Once you accept the definition of the source system, you have to provide the following information, save and back out:
    DBMS: ORA (Oracle)
    User Name: Your UID
    DB password: Your pwd
    Conn. Info: sql*net string
    Select u201CPermanent connectionu201D if this is the case
    9.If everything went well, you should see the new source system. When you do a right-click and ask for the DataSource overview, the first time you execute it you will be prompted to generate the application hierarchy. Answer yes to the prompt and then you will be able to see the DataSource tree.
    10.In order to test connectivity, right-click on the source system and select u201CSelect Database Tablesu201D
    11.Click on the execute button.
    12.Next shows up displaying any tables or views that you have access through your UID
    13.Select a table or view and click on u201CEdit DataSourceu201D.
    14.To test data retrieval, click on u201CDisplay table contentsu201D
    15.Designate the application component, determine the type of DataSource (Text, Master data, or Transaction data) then generate the DataSource.
    16.For each applicable table/view generate the repeat steps 13 to 15.
    17.From there, assign the DataSource to each target (InfoObject, InfoProvider) as usual.
    Moving from Dev to QA to Prod:
    18.Before transporting all you configuration work, you will have to manually set up the source system (Steps 4 to 8) in your QA or Prod
    19.Depending on your authorization settings in Production, you may need to implement a system restore. Work with BASIS if you need to, donu2019t do it on your own!
    20.Then transport your InfoObjects, InfoProviders, Update Rules, Transfer Rules, InfoPackages, etc.
    21.If you developed the process chains, transport them separately.
    22.Try to maximize throughput by using parallel processing of master data
    23.Ensure the right sequence for transactional data loads is followe.
    24.Combine the master data loads and the transactional data loads in a master process chain.
    It can be help full.
    Regards,

Maybe you are looking for

  • How can you open an ipad mini if its says the password is wrong?

    how do u get in to reset the password on a new ipad mini?

  • Oracle Calendar - UnsatisfiedLinkError: no csdkjni in java.library.path

    Hi, all. I deployed my test calendar application developed using Jdeveloper 10.1.3.0 (on Windows XP) to the Oracle 10.1.3. AS on a linux server, but the CalendarServer in on another installation (Collaboration Suite 10.1.2) on the same linux server.

  • Back order cancellation

    I purchased a pioneer avic-7000nex for 699.99 two weeks ago. Bestbuy priced match with crutchfield and that was awesome! I received a email confirmation saying that the item is back ordered and about two weeks later my order was canceled just a few d

  • PLD layout template cannot change or modify layout contents..

    Dear Experts, I have duplicated a PLD layout template, but then when I wish to change either a picture or texts in the template, I was not able to save the template thereafter. On a closer look at the DB, I realized the RDOC.CanChange field is set to

  • Self registration error in OIM-OID-OAM 11g

    Hi, We are using OIM,OID,OAM 11G,in clustering mode.We are facing a problem on self registration process. For every alternate self registration request,system is throwing an error.After the self register user request has got approveod,I have checked