Alpha Video Training
Results 1 to 1 of 1

Thread: Getting in a real muddle with Collections

  1. #1
    Member Graham Wickens's Avatar
    Real Name
    Graham Wickens
    Join Date
    Apr 2000
    Location
    Gloucestershire, UK
    Posts
    785

    Default Getting in a real muddle with Collections

    I'm trying to eliminate an array from my script (which I used to generate Filter statements), below is the test code.

    the first loop does it using the vLogData Array and the second loop is me trying to replicate it but using the collection. I am getting in real muddle, can anyone point out the error of my ways.

    Code:
    dim vlogText as c = <<%a%
    CE02||BELGIUM|19/07/2017|01|FAIRFORD
    FA101||BELGIUM|19/07/2017|01|FAIRFORD
    FA124|GE-S|BELGIUM|19/07/2017|01|FAIRFORD
    FA57|MN-L|BELGIUM|19/07/2017|01|FAIRFORD
    130612|612|CANADA|19/07/2017|01|FAIRFORD
    140112|112|CANADA|19/07/2017|01|FAIRFORD
    E-191||DENMARK|19/07/2017|01|FAIRFORD
    ET-197||DENMARK|19/07/2017|01|FAIRFORD
    CC-2||FINLAND|19/07/2017|01|FAIRFORD
    HN-406|06|FINLAND|19/07/2017|01|FAIRFORD
    HN-428|28|FINLAND|19/07/2017|01|FAIRFORD
    M-519||DENMARK|19/07/2017|01|FAIRFORD
    125|XO|FRANCE|19/07/2017|01|FAIRFORD
    5847|61-PP|FRANCE|19/07/2017|01|FAIRFORD
    E113|8|FRANCE|19/07/2017|01|FAIRFORD
    E127|5|FRANCE|19/07/2017|01|FAIRFORD
    E129|6|FRANCE|19/07/2017|01|FAIRFORD
    E139|3|FRANCE|19/07/2017|01|FAIRFORD
    E146|2|FRANCE|19/07/2017|01|FAIRFORD
    E20|4|FRANCE|19/07/2017|01|FAIRFORD
    E44|1|FRANCE|19/07/2017|01|FAIRFORD
    E46|7|FRANCE|19/07/2017|01|FAIRFORD
    E68|0|FRANCE|19/07/2017|01|FAIRFORD
    E87|9|FRANCE|19/07/2017|01|FAIRFORD
    1219|DAZ|FRANCE|19/07/2017|01|FAIRFORD
    4053|GBE|FRANCE|19/07/2017|01|FAIRFORD
    87||FRANCE|19/07/2017|01|FAIRFORD
    3025||GERMANY|19/07/2017|01|FAIRFORD
    3067||GERMANY|19/07/2017|01|FAIRFORD
    3117||GERMANY|19/07/2017|01|FAIRFORD
    3144||GERMANY|19/07/2017|01|FAIRFORD
    4325||GERMANY|19/07/2017|01|FAIRFORD
    4605||GERMANY|19/07/2017|01|FAIRFORD
    4649||GERMANY|19/07/2017|01|FAIRFORD
    5428||GERMANY|19/07/2017|01|FAIRFORD
    6001||GERMANY|19/07/2017|01|FAIRFORD
    8310||GERMANY|19/07/2017|01|FAIRFORD
    036||GREECE|19/07/2017|01|FAIRFORD
    345||JORDAN|19/07/2017|01|FAIRFORD
    RJF-01||JORDAN|19/07/2017|01|FAIRFORD
    RJF-02||JORDAN|19/07/2017|01|FAIRFORD
    RJF-03||JORDAN|19/07/2017|01|FAIRFORD
    RJF-04||JORDAN|19/07/2017|01|FAIRFORD
    06 BLUE||LITHUANIA|19/07/2017|01|FAIRFORD
    01||NATO|19/07/2017|01|FAIRFORD
    N-227||NETHERLANDS|19/07/2017|01|FAIRFORD
    D-661||NETHERLANDS|19/07/2017|01|FAIRFORD
    G-273||NETHERLANDS|19/07/2017|01|FAIRFORD
    J-368||NETHERLANDS|19/07/2017|01|FAIRFORD
    J-646||NETHERLANDS|19/07/2017|01|FAIRFORD
    S-453||NETHERLANDS|19/07/2017|01|FAIRFORD
    687||NORWAY|19/07/2017|01|FAIRFORD
    691|FN-K|NORWAY|19/07/2017|01|FAIRFORD
    3766||PAKISTAN|19/07/2017|01|FAIRFORD
    1115||POLAND|19/07/2017|01|FAIRFORD
    MAB||QATAR|19/07/2017|01|FAIRFORD
    MAH|211|QATAR|19/07/2017|01|FAIRFORD
    2706||ROMANIA|19/07/2017|01|FAIRFORD
    6807||ROMANIA|19/07/2017|01|FAIRFORD
    6824||ROMANIA|19/07/2017|01|FAIRFORD
    1962||SLOVAKIA|19/07/2017|01|FAIRFORD
    39227|227|SWEDEN|19/07/2017|01|FAIRFORD
    39268|268|SWEDEN|19/07/2017|01|FAIRFORD
    39816|816|SWEDEN|19/07/2017|01|FAIRFORD
    39 BLUE||UKRAINE|19/07/2017|01|FAIRFORD
    71 BLUE||UKRAINE|19/07/2017|01|FAIRFORD
    76683||UKRAINE|19/07/2017|01|FAIRFORD
    CSX62219|RS-50||19/07/2017|01|FAIRFORD
    MM54505|9||19/07/2017|01|FAIRFORD
    MM54510|7||19/07/2017|01|FAIRFORD
    MM54517|3||19/07/2017|01|FAIRFORD
    MM54518|2||19/07/2017|01|FAIRFORD
    MM54534|4||19/07/2017|01|FAIRFORD
    MM54539|8||19/07/2017|01|FAIRFORD
    MM54551|1||19/07/2017|01|FAIRFORD
    %a%
    trace.clear()
    delete myCollection
    dim global MyCollection as U
    dim entry_count as n = *count(vLogText)
    myCollection.initialize("1|2|3|4|5|6","1","1|2|3|4|5|6",vLogText)
    dim vLogData[entry_count] as p
    vLogData.initialize_properties("reg|Code|Country|SeenDate|SeenOrder|SeenWhere",vLogText)
    dim vFilterTxt[0] as c
    dim index as n
    for block = 0 to round_up(entry_count/64,0)
        vFilter = ""
        for iteration = 1 to 64
            index = block * 64 + iteration
            if index > entry_count then
                exit for
            end if
            vFilter = vFilter + "reg='"-vLogData[index].reg-"'.or."
        next iteration
        vFilterTxt[]=left(vFilter,len(vFilter)-4)
    next Block
    block = vFilterTxt.first_empty()-1
    vFilterTxt.resize(block)
    showvar(vFilterTxt.dump())
    '
    '
    '
    '
    '
    '
    '
    '
    '
    '
    keyval = mycollection.first()
    loop = .T.
    while loop
        vFilter = ""
        for iteration = 1 to 64
            currentval = mycollection.get(keyval)
            vFilter = vFilter - "reg='"-left(currentval,at("|",currentval)-1)-"'.or."
            trace.writeln("("-iteration-") = "+vFilter)
            if (typeof( mycollection.next(keyval) ) = "Z" ) then
                loop = .f.
            else
                keyval = mycollection.next(keyval)
            end if
        next iteration
        vFilterTxt[]=left(vFilter,len(vFilter)-4)
    end while
    block = vFilterTxt.first_empty()-1
    vFilterTxt.resize(block)
    showvar(vFilterTxt.dump())
    the resultant VfilterTxt array should be the same for both !!!!!!!

    thanks

    p.s.

    I should add that as I can only use 1024 characteres for each filter statement, I am trying to split then up into blocks of 64 (which just happens to be the closest to 1024 characters in this instance)
    Last edited by Graham Wickens; 10-07-2019 at 12:12 PM. Reason: additional Info
    --
    Support your local Search and Rescue Unit, Get Lost!

    www.westrowops.co.uk

Similar Threads

  1. What are the xbasic...collections?
    By kleky in forum Application Server Version 11 - Web/Browser Applications
    Replies: 4
    Last Post: 11-15-2013, 04:40 PM
  2. Debt Collections App
    By David Boomer in forum Alpha Five Version 10 - Desktop Applications
    Replies: 4
    Last Post: 02-27-2010, 08:57 PM
  3. Iterating over arrays & collections
    By gcaplan in forum Alpha Five Version 6
    Replies: 19
    Last Post: 05-17-2005, 04:00 AM
  4. Alpha Tech: Xdialog & Collections
    By Jamin Dunivan in forum Alpha Five Version 5
    Replies: 10
    Last Post: 10-18-2002, 12:56 PM
  5. Is this for real!!
    By Chris.Tanti in forum Alpha Four Version 6 and Prior
    Replies: 4
    Last Post: 11-01-2001, 01:05 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •