Mainframe Help Forums
Sep 03, · Multidimensional array in COBOL by tjegan» Wed Jul 15, am 3 Replies Views Last post by David Jackson Wed Jul 15, pm Array into cobol program from Java by samara» Wed Oct 06, pm 1 Replies Views Last post by Valenteno Tue Nov 23, am confused with functionality of INITIALIZE. The internal table in COBOL is called as ARRAY. To initialize the subscript, we can use a MOVE statement. Subscript starts from number 1 and increment by 1 every time by using ADD statement. Example: – To refer to element 1 in the previous example, we have to give DAY-NAME(1).
Return to IBM Cobol. Advanced search. Is there any alternate way to initialise? Regards, Gautham. What are the data definitions for the table? Is the "idiotically named" "I" an Index? How many times is this done in the program per run? There are some alternatives, if you can answer coobl above. Thanks, Gautham. Also, why PIC 9 7? If you are not calculating with it, why not X 7. If you are calculating with it, why not COMP-3? Dick's is the technique I used for many years.
I used a slightly different data definition, but the effects are identical. Here, I have tried to "rework" the code to "modernise" it a bit, using "reference modification". Unfortunately, I am unable to test it. Fortunately, it is very easy to test use your existing loop, but include a test for each ho for space or zero as appropriate. The point in using the reference modification in this way it to avoid the problem with the other technique, which is someone changes the sizes of the table or items in it, and doesn't change the initialisation.
This way, it should be automatic, and you can test that as well. It won't work automatically how to access my us.af.mil email adding a new field to the tablebut then it is not magic! Select all. Find the length of that new item. Compare it to the length calculated for the first occurence by adding-up your fields. It used to generate a loop to do it, but maybe worth checking for these days.
Another posibility, with the chance that things are still slow, is to "initialise as you need". Initialise only the first occrence. Then when putting something in the first, you initilise the next. I don't think you'll need to use this, as the above should perform well enough, and makes it clear when you are looking at a dump that all the data belongs to the current situation.
Doing "as you need" means leaving "old" ho in what to eat with tonsillitis. Also, were you using a subscript in your loop? If so, how was it defined? I will try out and let you know. Hope it would be useful. ThanksGautham. I was looking for a solution to this problem and found this post. May be an error in the sentence you wrote? Thanks for your response. Have a look at the ":".
Find out what it means. You could test it yourself as well. Related topics Replies Views Last post Initialize second level of a two dimensional array by abhi24in initualize Mon Jul how to make cute keychains, am 5 Replies Views Last post by dick scherrer Fri Aug 01, pm Help in cobol internal array!
Mar 02, · Initializing an Array in the DATA Division The VALUE clause is used to initialize a data-item in WORKING-STORAGE, but COBOL does not permit its use in a definition containing an OCCURS clause. A data-item with a VALUE clause must be defined and the space it occupies, and then REDEFINED as an array. Enterprise COBOL for z/OS, Version , Programming Guide. Examples: initializing data items. The following examples show how you can initialize many kinds of data items, including alphanumeric, national-edited, and numeric-edited data items, by using INITIALIZE statements. Sep 09, · In the calling program, define this as 2 complete arrays. One that will be initialized at the start of the calling module. The other will only have data MOVEd to it immediately before the call (from the one initialized array). Each time thru there will only be one (1) move.
Return to IBM Cobol. Advanced search. Then process this data against another and return the results to the main pgm. But NOT using initialize. You have completely misunderstood what i suggested you do. In the calling program, define this as 2 complete arrays. One that will be initialized at the start of the calling module. The other will only have data MOVEd to it immediately before the call from the one initialized array.
Each time thru there will only be one 1 move. Which will basically eliminate the cpu for this. In the called module the actual work will be done to load the array from the databasae. IF X initialiasations take place, is it better to do method A or method B.
This is using an MVCL which is "interruptible". The "offset move" goes even worse, resorting to a run-time routine to do the MOVE. I'll have to look into it more when I can. How many are you doing to cause a problem with CPU time?
It is functionally equivalent to one or more MOVE statements. However, it is inefficient to initialize an entire group unless you really need all the items in the group to be initialized. Following is the cpu used. With: Select all. Select all. START That'll put the size of the 01 up to around the same as TS. With a "smaller" table my results went with yours.
Then with the bigger table mine went with TS's Cheers,. The thing is Related topics Replies Views Last post Initialize second level of a two dimensional array by abhi24in » Mon Jul 28, am 5 Replies Views Last post by dick scherrer Fri Aug 01, pm Help in cobol internal array!