troi logo-homeproductspurchasesupportnewsaboutliststipslinks-

FAQ part 3: Troi File Plug-in questions

Table of Contents | Part 1 | Part 2 | Part 3 File Plug-in| Part 4 Text Plug-in | Part 5 URL Plug-in

Creating Files

Dialogs

File Formats

Images and Containers

Import

Information on Files

Manipulating Files

Launching

Runtimes

Windows NT

Miscellaneous

Back to top

Creating Files

Q. Is it possible to write a TAB character (or any other special character) in a file in order to generate a log file that can easily be opened in an other application, like Excel?
Yes, you can write any ASCII character to a file with Troi File Plug-in. You need to concatenate your ‘regular’ text with the special characters. The easiest way is to use the TrFile_AsciiValueToText function available in Troi File Plug-in 4.0 and later. First define a global to hold the TAB:

gTABchar    global, text

Then fill this global with the help of a (startup) script, like this:

Set Field[gTABchar, TrFile_AsciiValueToText( "-Unused" ; "9")]

or with variables:

Set Variable [$$TABchar, TrFile_AsciiValueToText( "-Unused" ; "9") ]

See also the example file MakeASCIIs.fp7 in the File Plug-in download:
<http://www.troi.com/software/filedownload.html>

For this you need to know the character's ASCII code, TAB has ASCII code 9. See the example file ASCII.fp7 for a list of ASCII codes here:
<http://www.troi.com/software/ascii.html>.

 

Q. How can I create a text file that has the correct formatting for the end of line for all platforms?
First create a global text field, for example called gXplatformReturn, which you set in a script that is run at startup of the file. In this script have the following step:

Set Field[ gXplatformReturn, TrFile_AsciiValueToText( "-Unused" ;
   If(Abs(Get(CurrentPlatform)) = 1 ;
      "13" ;
      "13 10") ;
    ) ]

On Mac OS X this will result in a CR (Carriage Return) and on Windows this will result in a CRLF (Carriage Return followed by a LF (LineFeed) character).
Now you can simply append this global to your calculations, for example in this script step:   

Set Field[ gErrorCode, TrFile_AppendContents( "-Unused" , "A bit of text" & gXplatformReturn) ]

TIP You can also define this as a global variable in FileMaker 8 or later.

 

Q. The function TrFile_AppendContents returns error code $$-2. What does this mean?
The error code $$-2 is a generic error and means that the file does not exist. This is an omission in our user guide. This function might also return $$-3.

To make this work you need to create the file first with the TrFile_CreateFile function. Also check if the path to the file is correctly set with the TrFile_SetDefaultFileSpec function.

 

Back to top

Dialogs

Q. I do not want a dialog for the user to determine which file to manipulate - I already know where the file is. How do I stop the dialog appearing?
In the example scripts these steps are performed: first a step that asks the user for a file and stores the resulting file path in a global. Then secondly this global is used in the next function to perform the actual action with that file. If you don't want a user dialog you can omit the first step and give the known path to the file as a parameter to the second function. So omit this step that brings the dialog up from the script:

Set Field[ gTheFileSpec,
    TrFile_SelectFileDialog( "-Unused" ; "Please select a file:")]


And only perform this step:

 Set Field[ textField,
    TrFile_GetContents( "-Unused" ; gTheFileSpec ;) ]


The global field 'gTheFileSpec' must contain a valid path to a file. You can also use a text field or calculation to specify the file.

 

Q. How do I automatically append the CurrentDate to export files without going through a dialog?
Use the Troi File Plug-in for this: if you know the path to the export file you can do it. First do an automatic scripted export to a file, for example named 'Export.TAB'. Then use:

Set Field[ gErrorCode, TrFile_Movefile("-Unused" ;
      gFilepath ; gFilepath & DateToText(Get(CurrentDate)) ]

Here gFilepath is a global field and contains for example:

MacHD:Data:Export.TAB   or

C:/Data/Export.TAB

After using the function the name of the file will be 'ExportFile.TAB09291998'. The path will be:

MacHD:Data:ExportFile.TAB09291998    or

C:/Data/Export.TAB09291998

 

Q. How can I eliminate the "save file name" dialog box during the printing to PDF?
That's on windows, not? Try this: If you select Acrobat Distiller as your default printer, it will create a postscript file that is then automatically distilled by Acrobat. There's no dialog and it's fast. TIP: FileMaker Pro 9 and later also has a Save As PDF command.

 

Q. The Troi File plug-in will only show text files in the selection dialog. How can you change this?
This is on Mac and is file filtering in action. To change the default filtering take a look at "Filtering Files" in the example databases.

For example to display all files add this script step:

Set Field[dontcare, TrFile_SetDefaultType( "-Unused" ; "")]


And to display only JPEG, TextEdit and read-only text files add this step:

Set Field[dontcare, TrFile_SetDefaultType("-Unused", "JPEGTEXTttro")]

Q. How can you display only text files in a File Open dialog box on Windows?
The fileTypes parameter must be formated in pairs of lines. You can specify multiple pairs of lines. The first line of the pair should contain a description of the files to be shown in the dialog. For example: "Text Files (*.txt)". The second line of the pair should contain the extension to be shown. For example: "*.txt". Also in the second line you can use multiple extensions to filter on by separating them with a semi-colon ";". For example: "*.txt;*.doc".

Set Field[dontcare, TrFile_SetDefaultType("-Unused",
"Text Files (*.txt)¶
"*.txt") ]
Back to top

 

 

File Formats

Q. Can the File Plug-in read, write or modify Microsoft Word documents?
The File Plug-in can read or create any type of document. However the File Plug-in does not know about the proper format for a Word document. So you can read in the contents of a document, but this will look like gibberish. The format of Microsoft Word is as far as we know not public, so we can't help you decode the proper format.

If you want to create documents that Word can understand, you might try to calculate a RTF (Rich Text Format) formatted file.

Below you find an example of a Word document with only the text "Hello World". This file can contain lots of extra information. A *part* of this file might be similar to this:

&endash;œ$%%^^¢£§§§§•••••• ¢ ¢ ˆ ˆ ˆ ˆ ¢ ˆ ¢ d Hello World! ∞
∆A!∞ "∞ #êÝ
$êÝ %∞ ∞≈ ∞≈ ê≈

Not an easy read!

Q. What is the difference in line end format between Mac and Windows?
In Mac text files the end of a line is signalled by the CR or Carriage Return character (ASCII code 13). In Windows files in general and specifically text files (extension .txt) the end of a line is signalled by CR/LF which is the Carriage Return character (ASCII 13) directly followed by the Line Feed character (ASCII 10).

Q. I am looking for a tool to export from Windows FileMaker to Paradox, Excel, textfile or any other readable format. Do you know of any tools that may help?
The Troi File plug-in can create files exactly as you want them, provided you know how to create the format with a FileMaker calculation. The plug-in also has a substitute function, so you can even change (exported) files on disk to some other formats.

Back to top

Images and Containers

Q. Is there a Troi plug-in that can save an image which is stored inside a container field to a file?
This is not possible with a Troi Plug-in, but you can do this with FileMaker Pro 8 and later.

Q. Graphics imported into a container and stored as a reference only are not visible on other computers. What gives?
When graphics are stored in container fields, referenced graphics will not be visible to guests unless they have mounted the volume where the graphics are stored before opening the database.
See also the detailed explanation on this web page: <http://www.troi.com/software/filexplatref.html>

Q. I need to import many MP3 QuickTime audio files into container fields using the "Import Movie..." script. I have a calculated pathname to the MP3 file, is it possible to batch import these?
No, at the moment we don't have a solution. FileMaker will always store a reference to the QuickTime file. From the FileMaker help: "The data in a container field is a REFERENCE to a multimedia file. If you move the database to a different computer, move the multimedia file as well (unless you have access to it through an AppleShare network server for Mac OS)".

The Troi File plug-in has a function that can import by reference. However, it only works for IMAGES.

 

Back to top

Import

Q. I need to batch import multiple files with tab separated data. How can I do that with the File plug-in?
This is a general description of how you can make this work.

Create a ScriptMaker Script with only the import script with a fixed filename and tab separated as selection. Test if this works.

Then in a loop use the TrFile_CopyFile function to copy from your source files to the fixed filename and do the import script. See the Multi Image Import example for a similar way to import but for images (Image Import.FP7).

Q. Is it possible to import Word documents as reference with Troi File Plug-in?
No, sorry this is not possible.

Back to top

 

 

Information on Files

Q. How can I detect if a file exists?
Use the TrFile_Exists function introduced in version 3.0.4!

Back to top

Manipulating Files

Q. How can I separate filename and folder from a full path?
Lets say the full path is present in a global text field gFullPath. Then in a script you can use these calculations to split it out:

Set Field [ FileName, Middle(gFullPath ; Position(gFullPath ; If(Abs(Get(CurrentPlatform)) = 1 ; ":" ; "\" ) ; Length(gFullPath) ; -1) + 1, Length(gFullPath) ) ]

Set Field [ Folder, Left(gFullPath ; Length(gFullPath) - Length(FileName)) ]

 

Q. When deleting a file we get a $$-47 error. What is going wrong?
This is the file is busy error. The file is probably opened by an other application.

 

Q. Can the File Plug-in link to documents outside the database for example Microsoft Word documents?
Yes, use the TrFile_Launch function for this. Store the name of the external file in the database, including the path information. To keep this flexible you should consider to store the path to the file in a separate (global) field:

gPathToWordDocumentsFolder could contain

"D:\Data\WordDocs\"

fileName could for example contain

"FunPoem.doc"


In the script add this:

Set Field[gFilePath, gPathToWordDocumentsFolder & fileName ]
Set Field[gErrorCode, TrFile_Launch( "-unused" ; gFilePath )]


This will launch the file specified by gFilePath with its application.

 

Q. Is there a way of using the "TrFile_MoveFile" to move files from one disk to a folder of a server?
The instructions for the 'TrFile_MoveFile' state "This function only works for source and destination on the same disk". This is true on Mac OS. On Windows if you want to move a file from say "C:\Documents" to a folder on a server you can do it by specifying the path as "\\server\DocumentFiles\".

 

Q. Can the Troi File Plug-in rename a file without too much scripting? If so, what function do you use?
You can do this using the TrFile_MoveFile function.

See the User Guide of Troi File Plug-in, which shows this example:

Renaming a file:

assume your C disk already contains a file "Testtext.txt". We assume that a global number field gErrorCode is defined. In ScriptMaker create the following script:

Set Field[gErrorCode, TrFile_MoveFile( "-Unused" ; "C:\Testtext.txt" ; "C:\NewName.txt" )]


This script will move (rename) the file "Testtext.txt" to the "NewName.txt" file in the same directory. Note that on Mac OS the paths will be like:

"Work Disk:NewName.txt".

 

Q. I´m using: TrFile_DeleteFolder( "-DeleteAllSubFoldersAndAllContents ; ...). Is there a way to avoid the security dialog "Do you really want to delete the folder ..."?
Yes, there is a way. But as this is a very powerful feature, we only tell you after a request by email.

 

Q. Why does the TrFile_Substitute function truncate the replace parameter at 1000 characters?
This was a limitation of the TrFile-Substitute function in version 2.5, this is fixed in version 3.0 and later.

 

Q. How can I convert a path returned from the Get(CurrentFilePath) function to a path that the Troi File Plug-in understands?new
The Get(CurrentFilePath) function returns a URL styled path, for example: "file://C:/data/test/myfile.fp7" on windows and "file://My Disk/data/test/myfile.fp7" on Mac OS.

To convert this, in a ScriptMaker Script add these script steps:

Set Field [ gFullPath , Get(CurrentFilePath)]
# Remove the first part:
Set Field ["gFullPath", Substitute(gFullPath, "file://","")"]
#Change slashes to backslashes on Windows and to colons on Mac:
Set Field ["gFullPath",
      Substitute( gFullPath, "/", If (Abs(Get(CurrentPlatform))=1, ":" , "\\" )]


(from a calculation of Vince Lackner)

 

Back to top

Launching

Q. On Windows the TrFile_LaunchFile command does not launch a file with a specific extension. How can I fix this?
It may be that your system is not configured to launch this filetype.

You can check this as follows (these instructions are for Windows XP):

In Control Panel open "Folder Options". Select the "File Types" Tab. Select the 3 letter extension that does not work. Make sure it says in the details: Opens with: <the application>.

Back to top

 

Runtimes

Q. Do you know of any reason the "TrFile-GetPathTo" function would not work on a bound FM 5.0 runtime solution?
This was fixed in version 2.1.2 and later of the File Plug-in.

Note 1: The fix is for Mac and Windows 95/98/Me only: We have not found a way to fix this in WindowsNT and Windows2000 and Windows XP.

Note 2: Starting with FileMaker Pro 5.5 there is a Status(CurrentFilePath), now called Get(CurrentFilePath) function, that also returns a path to the file.

Back to top

Windows NT

Q. (FMP6) On Windows NT the File Plug-in doesn't seem to be able to do clipboard actions when you lock the workstation. Can you help?
This is only relevant for pre FileMaker Pro 7 as Troi File Plug-in 3 or later does not need to use the clipboard anymore.
For pre FileMaker 7 systems: when you lock the workstation the plug-in will come back with $$-4225 when calling either the 'thumbnail to clipboard' or the 'reference to clipboard' function.

When locked the plug-in can not get the front window, and because of this it can't paste the clipboard next. Don't lock your workstation when you want to use functions that use the clipboard.

Back to top

 

 

Miscellaneous

Q. Can you make alias or shortcut files with the Troi File Plug-in?
No, this is not possible. We are considering this for a future version.

Q. I'm on Windows and I get an error code. When I checked your OSErrrs database I saw that the error code is a Mac error code. How can this be?
We try make cross-platform error handling simpler by translating error codes on Windows to the corresponding error code on the Mac. For example on Windows you might get the error "$$-43" which means "File not found".

NOTE It is still possible to get Windows errors, as we can only translate the error codes that are expected.

 

Q. Why can't I find a close command for the files that the Troi File Plug-in creates, reads or writes?
The Troi File Plug-in automatically closes the files after each function that accesses a file. This affects TrFile_GetContents, TrFile_SetContents, TrFile_AppendContents and TrFile_Substitute.

 

Q. Is it possible to get the "File Info" for a given file with the File Plug-in? I'm hoping to be able to get the information from the "Info & Comments" window on the Mac or the "Properties" window on the PC. new
Yes, from version 3.0.5 you can get this data from "Get Info" with Troi File Plug-in. Use this function:

TrFile_GetFileAttribute( "-FinderCommentAttr " ; TheFile)

See the example file Attribute.fp7. You can also use Troi_MetaData to get the data that is embedded in the file itself. See in Photoshop the IPTC data under File->File Info, and also the example file IPTC_XMP_Metadata.fp7.

 

Q. How come IPTC data contains garbage for higher ASCII's?
Higher ASCII characters are not defined in IPTC data, so the encoding can be Mac or Windows. Troi File Plug-in assumes the encoding is the same as the platform the plug-in is running on. If you run into this problem please contact us, we have a solution for this.

See also: Extended Characters in File Info Fields Don't Appear Correctly : http://www.adobe.com/support/techdocs/321725.html

 

 


Back to top

Other Questions?

If your question is not answered here, please look in the documentation that comes with the plug-in. We will be adding more to this FAQ. If you have suggestions please .


www.troi.com/support   © 2008 Troi Automatisering, all rights reserved.