To start, you would not want to ask the analyzer for data twice without first reading the first data back as you do in the first block diagram. You would want to ask for the data back ("CALC:DATA:SDAT?") the read it's reply as a string since you have set the format to ASCII.

The ports C D read/write only integers. Do I need to somehow change my decimal data into integers to transfer it to the computer? (I don't have any special needs. Just want to save a 1601-point data to the computer, with 2 columns for real & imaginary.)

Attached is a program that I wrote that uses a binary return instead of ASCII and a direct call to the visa32 dll to break down the binary block. The program as written now returns formatted data ("CALC:DATA:FDAT?"), but this would just need to be changed to corrected r/i pairs ("CALC:DATA:SDAT?").