Einführung in Systemdokumente

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11 (Geändert)


Alle Dokumente und Anwendungen auf Ihrem Rechner sind in Dateien auf einer bzw. mehreren Festplatten gespeichert, die auf Ihrem Rechner, Ihr(en) Laufwerk(en) oder anderen Speichermedien angemeldet oder angeschlossen sind. Innerhalb von 4D verwenden wir die Begriffe Datei oder Dokument für diese Dokumente und Anwendungen. In diesem Abschnitt jedoch arbeiten wir überwiegend mit dem Begriff Dokument, da die meisten Befehle für den Zugriff von Dokumenten und weniger für Anwendungen oder Systemdateien eingesetzt werden.

Eine Festplatte kann als eine oder mehrere Partitions formatiert sein, eine Partition heißt Volume. Es spielt keine Rolle, ob auf derselben Festplatte zwei Volumes präsent sind, auf 4D Ebene behandeln Sie diese normalerweise als getrennte und gleiche Einheiten.

Ein Volume kann auf einer Festplatte liegen, die direkt an Ihren Rechner angeschlossen oder über das Netzwerk mit einem File Sharing Protokoll angemeldet ist, wie z.B. NetBEUI unter Windows oder AFP auf Macintosh. Wenn Sie Befehle für Systemdokumente auf 4D Ebene einsetzen, behandeln Sie all diese Volumes immer gleich. Die Ausnahme ist, wenn Sie z.B. mit Plug-Ins die Leistung Ihrer Anwendung in diesem Bereich erweitern.

Jedes Volume hat einen Volume-Namen. Unter Windows werden Volumes mit einem Buchstaben gefolgt von einem Doppelpunkt gekennzeichnet. Mit A: und B: werden im Normalfall 5 1/4 oder 3 1/2 Floppy-Treiber bezeichnet. C: ist das Volume zum Booten Ihres Systems - außer, Sie haben Ihren PC anders konfiguriert. Die Zeichen D: bis Z: werden für zusätzliche Volumes verwendet, die an Ihrem Rechner angeschlossen oder angemeldet werden (CD-ROM, DVD bzw. Netzwerk Treiber, usw). Auf Macintosh haben die Volumes Namen, die Sie auf Ihrem Schreibtisch auf der Finder-Ebene sehen können.

Sie unterteilen Ihre Dokumente im allgemeinen in Ordner, die wiederum Unterordner enthalten können. Sammeln Sie nicht hunderte von Dateien auf derselben Ebene eines Volumes an, denn das ist verwirrend und verlangsamt Ihr System. Unter Windows heißt ein Ordner Verzeichnis; auf Macintosh wird schon immer der Begriff Ordner verwendet.

Um ein Dokument eindeutig zu identifizieren, müssen Sie den Namen des Volumes wissen, den Namen des/der Ordner, wo das Dokument liegt und den Dokumentnamen selbst. Diese aneinandergereihten Namen ergeben den Pfadnamen des Dokuments. Die Namen werden durch ein spezielles Zeichen, das Verzeichnis (Trennungs) symbol voneinander getrennt. Unter Windows ist es der umgekehrte Schrägstrich (\); auf Macintosh der Doppelpunkt (:).

Hierzu ein Beispiel: Sie haben das Dokument Wichtige Notiz im Ordner Notizen, der im Ordner Dokumente liegt, der wiederum im Ordner Aktuelle Projekte liegt.

Unter Windows ergibt sich folgender Pfadname, wenn alles auf dem Laufwerk C: (Volume) liegt:

C:\Aktuelle Projekte\Dokumente\Notizen\Wichtige Notiz.TXT

Hinweis: Das Zeichen \ wird auch vom 4D Methodeneditor für Escape Sequenzen (Steuerzeichen) verwendet. Um Probleme bei der Interpretation zu vermeiden, wandelt der Editor Pfadnamen wie C:\Festplatte automatisch um in C:\\Festplatte. Weitere Informationen dazu finden Sie im nachfolgenden Abschnitt "Escape Sequenzen und Pfadnamen unter Windows".

Auf Macintosh ergibt sich folgender Pfadname, wenn alles auf der Festplatte (Volume) Interner Treiber liegt:

Interner Treiber:Aktuelle Projekte:Dokumente:Notizen:Wichtige Notiz

Unter Windows hat der Dokumenname die Endung .TXT; die Erläuterungen dazu folgen im nächsten Absatz.

Für den kompletten Pfadnamen gilt, unabhängig von der Plattform folgendes Schema:

VolName Trenner { OrdnerName Trenner { OrdnerName Trenner { ... } } } DokName

Die Dokumente (Dateien) auf den Volumes haben mehrere Merkmale, das sind die Attribute oder Eigenschaften: der Dokumentname selbst, der Typ und der Creator.

Dokumenttyp und Creator


Unter Windows hat ein Dokument einen Typ, auf Macintosh ebenfalls einen Typ und u.U. zusätzlich einen Creator. Der Typ gibt die Art oder den Inhalt des Dokuments an. Ein Textdokument enthält z.B. nur Text ohne Stilvarianten.

Der Dokumenttyp wird durch die Endung, die Dateierweiterung festgelegt, die an den Dokumentnamen angehängt wird. So ist z.B. .TXT oder .TEXT Dateierweiterung für Textdokumente. Dasselbe Prinzip gilt auch für Mac OS X, zur Wahrung der Kompatibilität mit früheren Versionen kann der Dokumenttyp durch die Eigenschaft Dateityp festgelegt sein, wenn dies definiert wurde. Das ist eine Kennung aus 4 Zeichen, die nicht auf der Finder-Ebene erscheint. So ist z.B. der Dateityp für ein Textdokument "TEXT".

Das Dokument kann zusätzlich einen Creator haben, der das Programm angibt, mit dem das Dokument erstellt wurde. Dieses Konzept gibt es nicht unter Windows. Der Creator wird durch die Eigenschaft Datei-Creator bestimmt, Hat ein Dokument sowohl die Eigenschaft Typ und Creator, werden sie auf Mac OS berücksichtigt, unabhängig von der Dokumenterweiterung.

DocRef: Referenznummer des Dokuments


Ein Dokument ist offen im Lese-/Schreibmodus, im Modus Nur-Lesen oder geschlossen. Mit den in 4D integrierten Befehlen kann nur ein Prozess ein Dokument gleichzeitig im Lese-/Schreibmodus öffnen. Ein Prozess kann zwar mehrere Dokumente öffnen und mehrere Prozesse können wiederum mehrere Dokumente öffnen. Sie können dasselbe Dokument beliebig oft im Modus Nur-Lesen öffnen, jedoch nur einmal zur gleichen Zeit im Lese-/Schreibmodus.

Mit den Funktionen Open document, Create document und Append document öffnen Sie ein Dokument. Create document und Append document öffnen die Dokumente automatisch im Lese-/Schreibmodus. Nur mit Open document können Sie den Modus beim Öffnen wählen. Im geöffneten Dokument können Sie Zeichen schreiben sowie aus- und einlesen. Weitere Informationen dazu finden Sie unter den Befehlen RECEIVE PACKET und SEND PACKET. Haben Sie die Bearbeitung abgeschlossen, schließen Sie das Dokument mit dem Befehl CLOSE DOCUMENT.

Der Bezug auf alle offenen Dokumente erfolgt mit dem Ausdruck DocRef, den die Funktionen Open document, Create document und Append document zurückgeben. DocRef erkennt nur ein offenes Dokument. Es ist formell ein Ausdruck vom Typ Zeit. Alle Befehle und Funktionen, die mit offenen Dokumenten arbeiten, erwarten als Parameter DocRef. Übergeben Sie für diese Befehle eine inkorrekte DocRef, tritt ein Fehler im Dateimanager auf.

Ein- /Ausgabefehler verwalten


Ein-/Ausgabefehler können auftreten, wenn Sie auf Dokumente zugreifen, also Dokumente öffnen, schließen, löschen, umbenennen bzw. kopieren; wenn Sie die Eigenschaften eines Dokuments ändern; wenn Sie Zeichen in ein Dokument schreiben oder einlesen. Das Dokument wird z.B. nicht gefunden, es ist gesperrt oder bereits im Lese-/Schreibmodus geöffnet. Solche Fehler können Sie über eine Fehlermethode ON ERR CALL abfangen. Die häufigsten Fehler, die beim Verwenden von Systemdokumenten auftreten, werden im Abschnitt OS Systemfehler beschrieben.

Die Systemvariable Document


Mit den Befehlen Open document, Create document und Append document können Sie auf die Dokumente über die Standarddialogfenster zum Öffnen oder Sichern zugreifen. 4D gibt dann in der Systemvariable Document den kompletten Pfadnamen des Dokuments zurück. Verwechseln Sie diese Systemvariable nicht mit dem Parameter Document, der in der Parameterliste der Befehle erscheint!

Dokumentnamen oder Pfadnamen des Dokuments angeben


Die meisten Routinen dieses Abschnitts, die einen Dokumentnamen erwarten, akzeptieren sowohl den Namen als auch den Pfadnamen zum Dokument - außer es wird explizit etwas anderes angegeben. Übergeben Sie einen Namen, sucht die Routine im Ordner der Datenbank nach dem Dokument. Übergeben Sie einen Pfadnamen, muss er gültig sein.

Übergeben Sie einen falschen Namen bzw. einen falschen Pfadnamen, erzeugt die Routine eine Systemfehler, den Sie mit einer Methode ON ERR CALL abfangen können.

Escape Sequenzen und Pfadnamen unter Windows


Der Methodeneditor von 4D lässt Escape Sequenzen zu. Das ist eine Zeichenfolge, die bestimmte Zeichen ersetzt. Die Sequenz enthält einen linksgerichteten Schrägstrich (\) und ein Zeichen. \t ersetzt z.B. die Eingabe Character Tab für den Tabulator.

Das Zeichen \ wird unter Windows auch als Trenner in Pfadnamen verwendet. In der Regel ersetzt 4D einfache Schrägstriche in Pfadnamen unter Windows durch doppelte Schrägstriche \\, so wird C:\Ordner zu C:\\Ordner.

Schreiben Sie dagegen C:\MeinDokument\Neu, zeigt 4D C:\\MeinDokument\Neu an. In diesem Fall wird der zweite Schrägstrich fälschlicherweise als die Esquape Sequenz \N interpretiert. Aus diesem Grund müssen Sie bei Zeichen, die 4D als Escape Sequenz erkennt, stets zwei Schrägstriche eingeben \\.

4D arbeitet mit folgenden Sequenzen:

Escape SequenzErsetzte Zeichen
\nLF (Zeilenvorschub)
\tHT (Tabulator)
\rCR (Zeilenschaltung)
\\\ (linksgerichteter Schrägstrich)
\"" (Anführungszeichen)

Nützliche Projektmethoden für Dokumente auf der Festplatte


Welche Plattform ist in Betrieb

4D enthält zwar Befehle, wie z.B. MAP FILE TYPES, die unterschiedliche Codierung aufgrund plattformspezifischer Eigenschaften ausschalten. Arbeiten Sie jedoch bei der Dokumentenverwaltung auf der Festplatte auf einer niederern Ebene - Sie wollen z.B. die Pfadnamen per Programmierung erhalten -, müssen Sie wissen, ob die Anwendung unter Windows oder auf Macintosh läuft.

Die Projektmethode On Windows teilt mit, ob Ihre Datenbank unter Windows läuft:

      ` Projektmethode On windows 
      ` On windows -> Boolean
      ` On windows -> Wahr, wenn unter Windows

   C_BOOLEAN($0)
   C_LONGINT($vlPlatform;$vlSystem;$vlMachine)

   PLATFORM PROPERTIES($vlPlatform;$vlSystem;$vlMachine)
   $0:=($vlPlatform=Windows)

Das richtige Verzeichnis (Trennungs) Zeichen

Unter Windows wird eine Ordnerebene mit dem umgekehrten Schrägstrich (\) gekennzeichnet, auf Macintosh mit dem Doppelpunkt (:). Die Projektmethode Directory symbol gibt je nach der laufenden Plattform den Code des entsprechenden Trenners zurück.

      ` Projektmethode Directory symbol 
      ` Directory symbol -> Ganzzahl
      ` Directory symbol -> Code für "\" (Windows) oder ":" (MacOS)

   C_INTEGER($0)

   If (On Windows )
      $0:=Character code"\\")
   Else 
      $0:=Character code(":")
   End if 

Dateinamen aus einem langen Namen entnehmen

Haben Sie den kompletten Namen für ein Dokument erhalten, also Pfadnamen + Dateinamen, möchten Sie manchmal daraus den Dateinamen entnehmen, um diesen z.B. als Titel in einem Fenster anzuzeigen. Die Projektmethode Long name to file name führt dies für Windows und Macintosh aus.

      ` Projektmethode Long name to file name 
      ` Long name to file name ( String ) -> String
      ` Long name to file name ( Long file name ) -> file name

   C_STRING(255;$1;$0)
   C_INTEGER($viLen;$viPos;$viChar;$viDirSymbol)

   $viDirSymbol:=Directory symbol 
   $viLen:=Length($1)
   $viPos:=0
   For ($viChar;$viLen;1;-1)
      If (Character code($1[[$viChar]])=$viDirSymbol)
         $viPos:=$viChar
         $viChar:=0
      End if 
   End for 
   If ($viPos>0)
      $0:=Substring($1;$viPos+1)
   Else 
      $0:=$1
   End if 
   If (<>vbDebugOn) 
      ` Setze diese Variable in der Datenbankmethode On Startup auf True oder False
      If ($0="")
         TRACE
      End if 
   End if 

Pfadnamen aus einem langen Namen entnehmen

Haben Sie den kompletten Namen für ein Dokument erhalten, also Pfadnamen + Dateinamen, möchten Sie manchmal daraus den Pfadnamen entnehmen; z.B. wenn Sie weitere Dokumente am derselben Stelle speichern wollen. Die Projektmethode Long name to path name führt dies für Windows und Macintosh aus.

      ` Projektmethode Long name to path name
      ` Long name to path name ( String ) -> String
      ` Long name to path name ( Long file name ) -> Path name

   C_STRING(255;$1;$0)
   C_STRING(1;$vsDirSymbol)
   C_INTEGER($viLen;$viPos;$viChar;$viDirSymbol)

   $viDirSymbol:=Directory symbol 
   $viLen:=Length($1)
   $viPos:=0
   For ($viChar;$viLen;1;-1)
      If (Character code($1[[$viChar]])=$viDirSymbol)
         $viPos:=$viChar
         $viChar:=0
      End if 
   End for 
   If ($viPos>0)
      $0:=Substring($1;1;$viPos)
   Else 
      $0:=$1
   End if 
   If (<>vbDebugOn) 
      ` Setze diese Variable in der Datenbankmethode On Startup auf True oder False
      If ($0="")
         TRACE
      End if 
   End if   

Referenz

Append document, CLOSE DOCUMENT, COPY DOCUMENT, Create document, CREATE FOLDER, DELETE DOCUMENT, Document creator, DOCUMENT LIST, Document type, FOLDER LIST, Get document position, GET DOCUMENT PROPERTIES, Get document size, MAP FILE TYPES, MOVE DOCUMENT, Open document, Select document, SET DOCUMENT CREATOR, SET DOCUMENT POSITION, SET DOCUMENT PROPERTIES, SET DOCUMENT SIZE, SET DOCUMENT TYPE, Test path name, VOLUME ATTRIBUTES, VOLUME LIST.


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next