diff --git a/Mac/Demo/example0.html b/Mac/Demo/example0.html new file mode 100644 index 00000000000..c0336a56bf1 --- /dev/null +++ b/Mac/Demo/example0.html @@ -0,0 +1,75 @@ +
+ +Our example program checktext.py asks +the user for a text file and checks what style end-of-lines the file has. +This may need a little explanation: ASCII text files are almost identical +on different machines, with one exception: +
0x0a
,
+0x0d
and
+macfs.PromptGetFile
. This is one of the routines
+that allow you to ask the user to specify a file. You pass it one required
+argument, the prompt string. There are up to four optional MacOS file type arguments
+you can pass, as 4-byte strings. Specifying no file
+type will allow the user to select any file, specifying one or more types restricts
+the user to files of this type. File types are explained in most books on the Mac.
+
+PromptGetFile
returns two values: an FSSpec object and a
+success indicator. The FSSpec object is the "official" MacOS way of specifying a
+file, more on it later. The success indicator tells you whether the user clicked OK
+or Cancel. In the event of Cancel we simply exit back to the finder.
+
+PromptGetFile
has a number of friends that do similar things:
+
StandardGetFile
is identical to PromptGetFile
but
+without the prompt. It has up to four optional filetype arguments.
+StandardPutFile
asks the user for an output file. It will
+warn the user when she tries to overwrite an existing file. The routine has one
+mandatory argument: a prompt string. Pass the empty string if you do not want a prompt.
+GetDirectory
asks the user for a folder (or directory, in unix terms).
+It has one optional argument: a prompt string.
+
+
+There are many things you can do with FSSpec objects (see the
+macfs section in the
+Python Library Reference
+for details), but passing them to open
is not
+one of them. For this, we first have to convert the FSSpec object to a pathname, with
+the as_pathname
method. This returns a standard MacOS-style pathname with
+colon-separated components. This can then be passed to open
. Note that
+we call open with mode parameter 'rb'
: we want to read the file in binary
+mode. Python, like C and C++, uses unix-style line endings internally and opening a
+file in text mode ('r'
) would result in conversion of carriage-returns to
+linefeeds upon reading. This is something that Mac and DOS programmers are usually aware
+of but that never ceases to amaze unix buffs.
+
+After we open the file we attempt to read all data into memory. If this fails we use
+EasyDialogs.Message
to display a message in a standard dialog box and exit.
+The EasyDialogs module has a few more useful simple dialog routines, more on that in
+example 1.
+ +The rest of the code is pretty straightforward: we check that the file actually contains +data, count the number of linefeeds and returns and display a message with our guess of the +end-of-line convention used in the file.
+ +The example0 folder has three text files in Mac, Unix and DOS style +for you to try the program on. After that, you can continue with example 1 +or go back to the index to find another interesting topic.
+ +
+The Python Library Reference contains a section on +Macintosh-specific modules +that you should also read. Documentation is also available in PostScript and other +forms, see the documentation section +on the webserver.
+ Some of these documents were actually written while I was working on a "real" project: creating a single-button application that will allow my girlfriend to read her mail (which actually pass thry my @@ -36,6 +42,12 @@