Liten Datorhandbok För Målmedvetna

Academic Computer Club, Umeå Universitet, 2000


Macintosh Programmering

Filhantering

En del av de rutiner som beskrivs i detta moment kommer inte att fungera på system tidigare än 7.0.

När användaren väljer öppna från arkiv-menyn, tar du fram standarddialogrutan genom kommandot:

StandardGetFile(0L,1,typeList,&s7Reply);

Här är typeList en lista, definierad som long[4] över de filtyper som ditt program använder sig av. Variabeln s7Reply är av typen StandardFileReply och mottar de val som användaren gör i dialogrutan. Om s7Reply.good sätts till true så betyder det att användaren har gjort ett giltigt val i dialogrutan och du kan då fortsätta med att öppna filen.

Du öppnar filen med kommandot:

err=FSpOpenDF(s7Reply.sfFile,fsCurPerm,&path);

path är här ett referensnummer som ges till den öppna filen. Variablen err sätts till noErr om inget fel inträffade, annars sätts den till en felkod.

Du kan sätta filpekaren till en viss position i filen genom att ge kommandot:

err=SetFPos(path,fsFromStart,position);

Nästa läsoperation sker från filpekarens position. När du öppnar en fil är filpekaren satt till början av filen. Du läser in data av längden length (long) från filen till en pekare genom att ge kommandot:

err=FSRead(path,&length,dataPtr);

När du är klar stänger du filen genom att ge kommandot:

FSClose(path);

För att spara gör du på liknande sätt. Du tar fram spara-dialogrutan genom kommandot:

StandardPutFile("\p", defaultFileName, &s7Reply);

Du öppnar, stänger och sätter filpekaren precis som förut. För att skriva data använder du dig av kommandot:

err=FSWrite(path,&length,dataPtr);

För att förhindra att informationen i en fil förstörs om datorn skulle krascha medan du sparar, är det god programmeringsstil att alltid börja med att skriva till en temporär fil. Först när hela skrivoperationen är avslutad byter du plats på den temporära filen och filen som skall skrivas över. Du kan skapa en ny temporär fil genom kommandot:

err=FSpCreate(&spec,creator,fileType,s7Reply.sfScript);

Variablen spec är här FSSpec-en för den temporära filen du skapar. När du har skrivit klart till den byter du först plats på de två filerna och raderar sedan den temporära filen. Det görs med kommandona:

err=FSpExchangeFiles(&spec,&s7reply.sfFile); err=FSpDelete(&spec);

Författat av Niklas Frykholm


Bakåt , Framåt , Upp, Huvudsida
Denna sida ändrades sist av handbok den 08/05 1996 18:09:25.
Last modified Wednesday, 08-May-1996 18:09:25 CEST