in reply to read + unpack

Your data doesn't look like binary, looks like text. If your data is really binary, please provide a short hexdump we can use to test your code, like this
C:\>hexdump datafile | head 00000000: 45 43 48 4F 20 69 73 20 - 6F 6E 2E 0D 0A |ECHO is o +n. | 0000000d; C:\>od -tx1 datafile | head 0000000 45 43 48 4f 20 69 73 20 6f 6e 2e 0d 0a 0000015 C:\>

Replies are listed 'Best First'.
Re^2: read + unpack
by andri85 (Novice) on May 06, 2009 at 22:42 UTC
    The data should be binary, indeed with matlab I'm not reading it as a text and it works fine. Another hint, a friend of mine wrote a c++ code that outputs the correct numbers and it works:
    // Read the pink photon data arg_file.read(num_photons_bin, 1); pink_photons = (unsigned int) *num_photons_bin; // Increment the counter based on the bytes read status_counter += 1; // Read pink photon data for (int photon = 0; photon < pink_photons; photon++) { // Read the binary data into the variable arg_file.read((char *)&pink_x_pos, sizeof(double)); arg_file.read((char *)&pink_y_pos, sizeof(double)); arg_file.read((char *)&pink_z_pos, sizeof(double)); arg_file.read((char *)&pink_num_scatters, sizeof(int)) +; arg_file.read((char *)&pink_col_scatters, sizeof(int)) +; arg_file.read((char *)&pink_energy_val, sizeof(double) +); }

    So to my understanding this is a bin file. Regarding the hexdump, unfortunately the file has a 32768bytes header so I don't know how to skip them for the hexdump (what do I have to put instead of "head"?).
    Thank you very much for your attention.
    Andri