|
Mike Silvers wrote:
I am trying to have a multiple occurrence data structure and manipulate it using pointers. I am having a problem. I am always getting the last data I have entered. Here is the sample program: D Structure DS D Struct_F1 20 * D StructurePoint... D S * D SPH S * * D TestData S 20A * * Load the DS * C Eval SPH = %Addr(Structure) C Eval StructurePoint = %Addr(Structure) C Eval Struct_F1 = 'Position #1' C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval Struct_F1 = 'Position #2' C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval Struct_F1 = 'Position #3' * * Loop through the DS * C Eval StructurePoint = SPH C Eval TestData = Struct_F1 C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval TestData = Struct_F1 C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval TestData = Struct_F1 * C Return any ideas in where I am going wrong? what I am trying to accomplish is a have an unlimited number of data structure's sent to the program and in the program I loop through the data structures and process the information. The parms passed will be the pointer to the data structure and the number of occurrences.
Try coding something like: ---------------------------------------------------------------- D Structure DS BASED(StructurePoint) D Struct_F1 20 * D StructurePoint... D S * D SPH S * * D TestData S 20A * * Load the DS * C EVAL StructurePoint = %ALLOC(SIZE) C EVAL SPH = Structure C Eval Struct_F1 = 'Position #1' C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval Struct_F1 = 'Position #2' C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval Struct_F1 = 'Position #3' * * Loop through the DS * C Eval StructurePoint = SPH C Eval TestData = Struct_F1 C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval TestData = Struct_F1 C Eval StructurePoint = C StructurePoint + %Size(Structure) C Eval TestData = Struct_F1 * C Return -------------------------------------------------------------------- That is, you need to define your DS as based, and you need to allcoate storage for the DS somehow. Cheers! Hans
This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.