If I recall a long time ago speaking with Trevor, printkeys() does not 
necessarily return ALL keys. Your array does not look that large though. 

I have an array function that may prove more helpful. I designed it so that you 
could "search" or filter an array for a key and/or a value. It will return text 
looking something like:

[1] ["lastupdate"]      2016-09-07 13:56:01,[1] ["contactcell"]         ,[1] 
["siteidlist"]     ,[1] ["contactid"]      409,[1] ["contactname"]         
Stonehill Technical Solutions,[1] ["contactphone"]      949-218-1258,[1] 
["updateby"]   Robert Sneidar,[1] ["itidlist"]         |396|,[1] ["custid"]    
340,[1] ["contactemail"]        ,[1] ["contacttype"]    |customer|site|it|,[1] 
["position"]     
[2] ["lastupdate"]      2016-09-07 13:56:01,[2] ["contactcell"]         ,[2] 
["siteidlist"]     |397|,[2] ["contactid"]         410,[2] ["contactname"]      
   Jackie Silventez,[2] ["contactphone"]   951-943-2223,[2] ["updateby"]   
Robert Sneidar,[2] ["itidlist"]         ,[2] ["custid"]         340,[2] 
["contactemail"]        ,[2] ["contacttype"]    |site|,[2] ["position"]         

etc.

It has the format [first root key] [first child key] [next child key] [next 
child key] (etc.)<vert tab>"key value",[first root key] [second child key]...

and so on. The value to this format is you can use the filter lines command to, 
for example find every line containing *["custid"]<vert tab>340*. Each line 
will then contain the actual array keys for that entry, which you can use to 
reference the original array. In this case the root key is 1, the first child 
key is "custid" the value is 340. 

It seems complicated at first but it's not. Try it with a 3 deep multi key 
array. It gives you the ability using the filter lines command to find every 
matching array key with a single statement. 

Bob S


function altPrintKeys @pArray
   put numtochar(11) into vertTab
   put numtochar(30) into altCr
   put the keys of pArray into theKeys
   sort theKeys numeric
   
   repeat FOR each line theKey in theKeys
      put "[" & theKey & "] " after theKeyList
      if theKey is not a number then
         replace "[" & theKey & "]" WITH "[" & quote & theKey & quote & "]" in 
theKeyList
      end if
      if pArray[theKey] is an array then
         put pArray[theKey] into theTempArray
         put altPrintKeys(theTempArray, theKeyList, pFullData) after theText
         put empty into the last word of theKeyList
         delete the last char of theKeyList
         put cr into the last char of theText
      else
         put "pArray " & the last word of theKeyList into theKeyName
         -- put "put " & theKeyName & " into theValue" into theCommand
         -- do theCommand
         put value(theKeyName) into theValue
         replace tab WITH vertTab in theValue
         replace return WITH altCr in theValue
         put theKeyList & tab & theValue & comma after theText
         put empty into the last word of theKeyList
         delete the last char of theKeyList
      end if
   end repeat
   
   return theText
end altPrintKeys

Bob S


> On Dec 17, 2019, at 12:13 , Klaus major-k via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> Hi friends,
> 
> I have a datagrid "produkte" of type Table with these 12 columns:
> 1. lfd_nummer
> 2.Titel
> 3.sid
> 4.währung
> 5.Kupon
> 6.barriere
> 7. Verfallsdatum
> 8.Basiswerte
> 9. status
> 10. statusstatus
> 11. abruffehler
> 12. abruffehlermeldung
> 
> But when I fire this in the messagebox: 
> send "printkeys" to grp "produkte", I only get 10 keys? 
> 1
> Verfallsdatum: ``
> abruffehlermeldung: ``
> lfd_nummer: `0018`
> status: ``
> sid: `44`
> Titel: `sdsdsdds`
> Basiswerte: `Aktien`
> Kupon: `50.00%`
> barriere: `80.00%`
> währung: `CHF`
> 
> Same with: 
> put the dgdata of grp "produkte" into tt;put keys of tt[1]
> Verfallsdatum
> abruffehlermeldung
> lfd_nummer
> status
> sid
> Titel
> Basiswerte
> Kupon
> barriere
> währung
> 
> Again only 10 keys from total 12!? What am I missing?
> Tested on macOS 10.14.6 with LC 9.05, 9.04 and 9.5.1 GM.
> 
> 
> Best
> 
> Klaus
> --
> Klaus Major
> https://www.major-k.de
> kl...@major-k.de
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to