Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

READ DATASET

Former Member
0 Kudos

I am reading the file using READ DATASET. I get an error on the 4th MOVE, MOVE gv_row+36(40) TO wa_qualitydata-char_descr.

The current program "ZFS1052IN" tried to access a part of a string using

offset and length.

However, the sum of the offset (36) and length (40) specifications

was greater than the length of the string (64).

This is not allowed.

Any ideas how to solve this?

Thanks

TYPES: BEGIN OF t_qualitydata,
         matnr(18)      TYPE C,
         charg(10)      TYPE C,
         verwmerkm(8)   TYPE C,
         char_descr(40) TYPE C,
         kurztext(40)   TYPE C,
         mean_value(22) TYPE C,
       END OF t_qualitydata.
DATA: i_qualitydata  TYPE STANDARD TABLE OF t_qualitydata,
      wa_qualitydata TYPE t_qualitydata.

DATA: gv_row TYPE string.

OPEN DATASET c_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
DO.
  READ DATASET c_file INTO gv_row.
  IF sy-subrc = 0.

    MOVE gv_row+0(18)   TO wa_qualitydata-matnr.
    MOVE gv_row+18(10)  TO wa_qualitydata-charg.
    MOVE gv_row+28(8)   TO wa_qualitydata-verwmerkm.
<b>    MOVE gv_row+36(40)  TO wa_qualitydata-char_descr.</b>

    APPEND wa_qualitydata TO i_qualitydata.

  ELSE.
    EXIT.
  ENDIF.                   "IF sy-subrc = 0.
ENDDO.

CLOSE DATASET gv_row.

HYC26138450      AC7812345 50000700SPECIFIC GRAVITY @ 15.6 C                                                                       1.0600
HYC26138450      AC7812345 50000751BLOT  (PASS)                            Clean
HYC26138450      AC7812345 50000757CLARITY  (CLEAR)                        Slight Haze Pass
HYC26138450      AC7812345 50000761COLOR  3.0 typical                      L 0.5
HYC26138450      AC7812345 50000731VISCOSITY @ 40 C, CST                                                                            69.00
HYC26138450      AC7812345 50000725VISCOSITY @ 100 C, CST                                                                           8.300
HYC26138450      AC7812345 50000429WATER                                                                                0.300
HYC26138450      AC7812345 50000770COPPER STRIP  2C max.                   1A
HYC26138450      AC7812345 50000286NITROGEN                                                                                0.900
HYC26138450      AC7812345 50000322PHOSPHORUS                                                                                1.600
HYC26138450      AC7812345 50000401SULFUR                                                                                30.000
HYC26138450      AC7812345 50000745APPEARANCE  (PASS)                      Tan
HYC26138450      AC7812345 50000264MINERAL OIL                                                                                1.900
HYC26138450      AC7812345 50000398SULFATED ASH                                                                                0.850
HYC26138450      AC7812345 50000469BASE NUMBER                                                                                90.000
HYC26138450      AC7812345 50000524FLASH POINT, C, PMCC                                                                              63.0
HYC26138450      AC7812345 50000531FOAM TEST, SEQ II, STABILITY
HYC26138450      AC7812345 50000530FOAM TEST, SEQ II, TENDENCY
HYC26138450      AC7812345 50000793H2S HEAD AFTER STG  (NEGATIVE)          Negative
HYC26138450      AC7812345 50000778INFRARED EVALUATION  (PASS)             FC-1 Fail Category 1
HYC26138450      AC7812345 50000569LBS PER GAL @ 15.6 C                                                                             8.880
HYC26138450      AC7812345 50000782ODOR AFTER STORAGE  (STRONG)            Strong
HYC26138450      AC7812345 50000617POUR POINT, C                                                                                -24.0
HYC26138450      AC7812345 50000713SPECIFIC GRAVITY FACTOR                                                                      0.0007200

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

change gv_row from string to char say length 250.

Thanks,

Deepak.

5 REPLIES 5

Former Member
0 Kudos

Hi,

change gv_row from string to char say length 250.

Thanks,

Deepak.

Former Member
0 Kudos

I changed gv_row to

data: gv_row(256) type c.

and it worked. strange!!

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Hi Megan, if you want to keep gv_row as a string, you may want to give this a try.



    move gv_row+0(18)   to wa_qualitydata-matnr.
    move gv_row+18(10)  to wa_qualitydata-charg.
    move gv_row+28(8)   to wa_qualitydata-verwmerkm.

    data: len type i.
    data: char type i.
    len = strlen( gv_row ).
    if len > 76.
      move gv_row+36(40)  to wa_qualitydata-char_descr.
    else.
      char = len - 36.
      move gv_row+36(char)  to wa_qualitydata-char_descr.
    endif.

    append wa_qualitydata to i_qualitydata.

Regards,

RIch Heilman

Former Member
0 Kudos

Thanks Rich. i have decided to stick to type c length 256. I have been trying to look for your book, its not available on amazon. Where can I get it from?

0 Kudos

Unfortunatly, It appears amazon may not be carrying it in the US. Not sure why as it is on amazon in UK, Germany, as well as Japan, but whatever. You can order the book from SAP-press.com. I believe that it is free shipping.

http://www.sap-press.com/product.cfm?account=&product=H1986

Regards,

RIch Heilman