This part of code is invalid, I think:

if (!memcmp(Functn , "#NEXT" , 5))
if (!memcmp(p_iRecord, Odata->RecordName, sizeof(*p_iRecord)))
if(!memcmp(p_iField, Odata->FldNam, sizeof(*p_iField) ))
if(!memcmp(p_iRow, Odata->ROW, sizeof(*p_iRow) ))
if(!memcmp(p_iCol, Odata->COL, sizeof(*p_iCol)))
*GotIt = 1;

If understand correctly your intention, you wanted to compare 2 record
names, 2 field names, row and column of the 2 fields.
But in fact I think that you only compare the first character of the 2
records and the first character of the field names as
sizeof(*p_iRecord) equals to 1.

I would write it so:

if (!memcmp(Functn , "#NEXT" , 5) &&
!memcmp(p_iRecord, Odata->RecordName, 10) &&
!memcmp(p_iField, Odata->FldNam, 10 ) &&
(*p_iRow == *Odata->ROW) &&
(*p_iCol == *Odata->COL))
*GotIt = 1;

On Mon, Sep 22, 2014 at 12:51 PM, Frank Kolmann <fkolmann@xxxxxxxxx> wrote:
Hi Jevgeni

I am glad your program is now working, it was your original question
that prompted my to make a program that uses the API.

Seems there are many ways to skin a cat and what you say to store the
pointer of the previous field is more efficient.

You mention debugging my program.
What bug did you find? I would like to correct it.
As you may guess I dont believe my code is 'dangerously inefficient'.
Yes my code is not the most efficient but it was mostly a demonstration
of how to process the API data, and as such it has succeeded.


This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by 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].