Jump to content
Claris Engage 2025 - March 25-26 Austin Texas ×

This topic is 3171 days old. Please don't post here. Open a new topic instead.

Recommended Posts

Posted

I'm trying to write a simple FileExists() function, but I'll be darned if I can't find any documentation (hours of playing with this not fruitful) on how to take the dataVect object passed (the parameter from FileMaker) and pass that (a file name path) to the 'fopen" block of unfinished code below. C++ is not my normal language so the syntax and XCODE errors aren't helping.

Not sure why this is difficult (OK, probably only for me). I'll get a file path in the dataVect and I just want to see if that path exists. (Magic apparently needed.)

Would appreciate any suggestions. This is easy, right?

Thanks,

- m

-------------------------

FMX_PROC(fmx::errcode) FileExists(short funcId, const fmx::ExprEnv& environment, const fmx::DataVect& dataVect, fmx::Data& result)
{
    fmx::errcode      err = 0;
    fmx::TextAutoPtr  tempText;
    fmx::TextAutoPtr  param1;

    param1->SetText(dataVect.AtAsText(0));  // INPUT: path to file.
    
    fmx::TextAutoPtr resultText;  // OUPUT: "true" or "false"
    
   
    if (FILE *file = fopen(<????>, "r")) {
        fclose(file);
        return true;
    } else {
        return false;
    }

Posted

didn't you read my slides?

 

const fmx::Text & path = dataVect.AtAsText(0);

 

this gives first parameter.

Than you need to allocate memory, copy bytes from text object to buffer to have a C string.

And you may looking into using unicode path, so no simple fopen()!

Posted (edited)
1 hour ago, MonkeybreadSoftware said:

didn't you read my slides?

 

const fmx::Text & path = dataVect.AtAsText(0);

 

this gives first parameter.

Than you need to allocate memory, copy bytes from text object to buffer to have a C string.

And you may looking into using unicode path, so no simple fopen()!


Maybe my rusty German is even rustier than I thought.

I thought this would be more or less like Java, but yuck, so complicated. Well, I'm just not used to C++, but in Java, this would basically be:

File test = new File("pathtofile");

if (test.exists())....

// SO EASY!

....

Thanks Christian,

- m

Edited by Morkus
Posted

Christian,

I replied in the FM Community forum, but wanted to thank you again here.

I was able to get the FileExists() function working fine.

Thanks again.

- m

This topic is 3171 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.