FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Multi dimensional Array, aSave, aRead
Posts: 392
Joined: Tue Jul 29, 2008 01:55 PM

Multi dimensional Array, aSave, aRead

Posted: Mon Nov 11, 2013 06:32 PM

Hello Fivewinners.

I require save and read in a memo field, multi dimensional array, I  try saving with aRead aSave and read it, but send me the following error:

Time from start: 0 hours 1 mins 39 secs
    Error occurred at: 11/11/2013, 12:24:18
    Error description: Error BASE/1131 Bound error: array dimension
    args:
      [1] = N -4799

Stack Calls

Called from: => Array (0)
    Called from:. \ Source \ classes \ WINDOW.PRG => aread (1816)
    Called from: C: \ Activities \ prg \ actividadxml08.prg => AV_GENERA_R08 (874)

I am using xHarbour 1.23 and Fw1308

Someone knows the trick?

regards

Visite Chiapas, el paraiso de México.
Posts: 663
Joined: Mon Dec 05, 2005 11:22 PM

Re: Multi dimensional Array, aSave, aRead

Posted: Mon Nov 11, 2013 08:35 PM

I use valtoprgexp()

replace MemoField with valtoprgexp( aData )

then later

aData := &( MemoField )

This may be a xHarbour.com function but I am not sure.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Multi dimensional Array, aSave, aRead

Posted: Tue Nov 12, 2013 08:47 AM

Gustavo,

Que versión de FWH estás usando ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 244
Joined: Fri Oct 28, 2005 06:29 PM

Re: Multi dimensional Array, aSave, aRead

Posted: Tue Nov 12, 2013 12:14 PM

Yo uso desde hace muchisimo tiempo los campos memo guardando arrays multidimensionales sin hacer absolutamente ninguna formula ni nada.

Simplemente creo el campo como memo AADD(aDbf,{"ITEMS", "M", 10, 0}) y luego le asigno el array que necesito:

  aItems[n][1] // Fecha
  aItems[n][2] // Código de concepto
  aItems[n][3] // Número de cuota
  aItems[n][4] // Vencimiento
  aItems[n][5] // Debe
  aItems[n][6] // Haber

Replace (cAlias)->Items With aItems

Despues se puede recorrer el array

For n := 1 To Len( (cAlias)->Items
MSgInfo( (cAlias)->Items[n][1] )
MSgInfo( (cAlias)->Items[n][2] )
MSgInfo( (cAlias)->Items[n][3] )
...
....
Next

No se si es esto lo que estas necesitando.
Espero que te sirva.

Saludos

Alejandro Cebolido

Buenos Aires, Argentina
Posts: 392
Joined: Tue Jul 29, 2008 01:55 PM

Re: Multi dimensional Array, aSave, aRead

Posted: Sun Nov 17, 2013 04:17 PM

Hola Antonio.

Estoy utilizando la version 13.08.

Alejandro, Gracias por el Tip, por ahora lo resolvi asi, como lo comentas.

Saludos

Visite Chiapas, el paraiso de México.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM

Re: Multi dimensional Array, aSave, aRead

Posted: Wed Nov 20, 2013 01:15 PM

I am not discussing about ARead and ASave, but like to discuss some alternatives.

1) If we are using "DBFCDX", we need not make any conversions. We can straightaway assign and read Arrays to and from memo fields very safely.

(cAlias)->MEMOFLD := aData
and
aData := (cAlias)->MEMOFLD

Works very well and reliably for any complex arrays nested to any level.

Cons: Does not work with DBFNTX or ADSCDX.

2) I personally recommend using FW_ValToExp( aData ) over using VALTOPRGEXP().

By using FW_ValToExp() we are confident that values written in xHarbour can be correctly ready by Harbour and vice-versa.

We had to write FW_ValToExp() when we faced some issues using ValToPrg().

Regards



G. N. Rao.

Hyderabad, India

Continue the discussion