Benutzer:Ferdinand f./HELPMAKE

aus Wikipedia, der freien Enzyklopädie
Microsoft Help File Maintenance Utility
Basisdaten

Entwickler Microsoft Corporation
Erscheinungsjahr 1990
Aktuelle Version 1.08
Betriebssystem MS-DOS
Kategorie MS-DOS-Kommandozeilen-Programm

HELPMAKE ist ein von Microsoft entwickeltes MS-DOS-basiertes Werkzeug zum Erstellen von Hilfedateien. Die erstellten Dateien können beispielsweise von QuickHelp, QuickBasic oder dem MS-DOS-Editor als Hilfe verwendet werden. Zudem können bereits existierende .hlp-Dateien dekodiert, d. h in ihre ursprüngliche Version zurückversetzt werden, um sie beispielsweise zu bearbeiten.

Datei:QB45 Help.PNG
Eine mit HELPMAKE erstellte MS-DOS Hilfedatei im Einsatz (QuickBasic 4.5)

Erstellen einer Hilfedatei

Datei:Helpmake.PNG
Erfolgreiche Meldung nach dem Kompilieren

Zum Erstellen einer Quelldatei stehen einem drei Formate zur Verfügung. Dies kann mit jedem beliebigen Textverarbeitungsprogramm wie beispielsweise Microsoft Word oder dem Windows-Editor geschehen. HELPMAKE kann die Quelldateien nur kompilieren, d. h. sie in ein anderes Format verwandeln. Zur Erstellung stehen einem eine Vielzahl von Optionen zur Verfügung.

Ein Thema definieren

Das Thema ist ein wichtiger Bestandteil der Hilfe-Information. Jedes Thema beginnt mit einem oder mehreren aufeinander folgenden .context mit den dazugehörigen Definitionen. Ein Thema hört erst mit dem nächten .context auf. Der Name steht hinter den .context und wird vom Reader als Titel angezeigt. Definiert wird ein Thema wie folgt:

.context string

Der String kann mehrere Wörter umfassen, je nach Reader. QuickBasic zum Beispiel unterstützt nur ein Wort, während PWB mehrere unterstützt. Der String darf aber nur einmal in der gesamten Hilfedatei vorhanden sein.

Links zu anderen Themen

Ein Thema kann auch einen Link zu einem anderen Thema (sowohl in einer Hilfedatenbank als auch eine eine andere Hilfedatei oder eine Textdatei) enthalten. Solch ein Link kann in unterschiedlicher Weise angezeigt werden.

Es gibt zwei Arten von Links:

  1. Explizit (Code)
  2. Implizit (Ohne Codierung)

Diese können auch noch unterteilt werden:

  1. Globaler Kontext (Sichtbar im gesamten Hilfesystem)
  2. Lokaler Kontext (Sichtbar nur in einer Datenbank)

Explizite Links

Explizite Links werden mit in der Hilfedatei unsichtbarem Code gekennzeichnet, d. h. der Reader zeigt nur den Linktext an, nicht aber den Code. Um den unsichtbaren Text sichtbar zu machen benutzt man folgende Syntax:

string\vtext\v

Wenn der String mehrere Wörter enthält, muss man \a benutzen:

\astring\vtext\v

\v umschließt den sichtbaren Teil des Links. Es gibt hier vier Arten des Textes:

  1. contextstring
  2. helpfile!contextstring
  3. filename! (Zeigt eine Textdatei (.TXT) als eigenes Thema an.
  4. !command (Führt den Befehl hinter dem Ausrufezeichen aus. Dabei wird zwischen Groß- und Kleinschreibung unterschieden. Die Befehle sind anwendungsspezifisch, zum Beispiel zeigt bei QuickHelp der Command !B das zuvor angesehene Thema an.

Beispiel:

\bSiehe auch:\p Beispiel\vopen.ex\v

Angezeigt wird es so: Siehe auch: Beispiel
Wenn man nun auf Example klickt, dann wird man automatisch zum Thema (Definiert mit: .context open.ex) open.ex weitergeleitet.

Um mehrere Links in einer Zeile anzuzeigen, muss man folgenden Code benutzen:

\bSiehe auch:\p \aBeispiel 1\vopen.ex1\v, \aBeispiel 2\vopen.ex2\v

Implizite Links

Ein impliziter Link ist ein Thema, das vom Hilfesystem als Link angesehen wird (zum Beispiel bei der Suche).

Lokaler Kontext

Ein lokaler Kontext beginnt immer mit einem @. (Um ein Thema zu erstellen, das mit einem @ beginnt, muss man ein \ davorsetzen: \@Thema. Lokale Kontexte benötigen weniger Speicher und sind schneller. Das liegt daran, dass HELPMAKE statt eines Strings eine Zahl generiert.

Beispiel:

 .context Global
 Dies ist ein ganz normales Thema mit einem Link zu einem lokalen Kontext.
 Link: \aA Local Topic\v@Local\v

 .context @Local
 Dieses Thema kann nur durch den obigen Link oder die Suche gefunden werden.

Formatieren eines Textes

Formatierungsattribut Aktion
\a Markiert einen expliziten Link
\b, \B Fett schreiben
\i, \I Kursiv schreiben
\p, \P Alle Attribute beenden (Bis auf \v)
\u, \U Unterstreichen
\v, \V Text unsichtbar machen
\\ Einen Backslash (\) schreiben

Beispiel

Dieses Beispiel ist in QuickHelp geschrieben.

.context Beispiel
.context @Beispiel
.topic Demonstration von HELPMAKE
.length 20
.freeze 3
\i\p\aZurück\v!B\v\i\p
----------------------------------------------------
Man kann den Hilfetext mit verschiedenen Grafischen Elementen ausschmücken:
\bAttribute\p \bQuickHelp Code\p
\iKursiv\p \\i
\bFett\p \\b
\uUnterstrichen\p \\u
Wie der obige Text nun angezeigt wird, hängt vom Hilfereader ab.

\bSiehe:\p
Programmierung, Ausdrücke, Grammatik, Schlüsselwörter, Syntax
\i\p\aSeite2\v@Seite2\v\i\p
\i\p\aReadme:\v$DOC:README.DOC!\v\i\p
.context @Seite2
.topic Beispielhife: Seite 2
.length 8
.freeze 3
\i\p\aZurück\v!B\v\i\p
----------------------------------------------------
Hier ist ein zweiter Hilfeschirm.
Der Explizite Link: \i\p\aBeispiel\v@Beispiel\v\i\p
Der Implizite Link: Beispiel

Dot and Colon Commands

Dot and Colon Commands sind Informationen für den Hilfereader. Um diese zu verwenden muss man die \T Option beim erstellen angeben. Es gibt folgende Dot and Colon Commands:

Dot Command Colon Command Action
.category string :c Ordnet ein Thema in eine Kategorie ein. Dieser Command wird nur von QuickHelp unterstützt.
.command :x Interne Informationen für den Reader.
.comment string
.. string
Gibt es nicht. Der String ist nur in der Quelldatei enthalten und wird bein erstellen gelöscht.
.context string Gibt es nicht. Definiert ein Thema.
.end :e Beendet eine „paste section“ (siehe .past)
.execute :y Führt einen spezifischen command aus. Beispiel:
.execute Pmark context
springt zum markierten (siehe .mark) Thema.
.freeze numlines :z Sperrt die ersten numlines. Diese werden nicht bewegt, wenn gescrollt wird.
.length topiclength :l Setzt die größe des Fensters vom Reader in Zeilen.
.line number Gibt es nicht. Setzt die Zeilennummern am Anfang. Diese werden bei Fehlermeldungen angezeigt. Dieser Befehl wird nicht beim decodieren übernommen.
.list :i Zeigt an, dass das Thema eine Liste mehrerer Themen enthält.
.mark name :m Definiert eine Marke unmittelbar vor der folgenden Textzeile. Die markierte Zeile zeigt einen Skriptbefehl, wenn die Anzeige eines Themas beginnt. Der Name identifiziert die Marke. Wird nur von QuickHelp unterstützt.
.next context :> Zeigt das nächste Thema (context) an. Das ist gut um .command und .popup Themen zu überspringen.
.paste pastename :p Beginnt eine paste Selection. Diese wird im QuickHelp Paste -Menü angezeigt und wird auch nur von QuickHelp unterstützt.
.popup :g Wird nur bei QuickHelp unterstützt. Das Thema wird dann anders angezeigt.
.previous context :< Zeigt das vorherige Thema (context) an. Das ist gut um .command und .popup Themen zu überspringen.
.raw :u Schaltet die besondere Verarbeitung bestimmter Zeichen aus.
.ref topic [, topic] :r Listet das Thema im Referenzmenü auf. Dabei muss .ref am Anfang der Zeile stehen. Wenn der Reader (nur QuickHelp) kein .ref findet, sucht er nach phrasen wie „see:“ oder „See also“.
.source filename Gibts nicht. Sagt dem Reader, dass das Thema aus der Datei filname kommt. Diese wird nicht beim erstellen in die .hlp Datei eingefügt.
.topic text :n Definiert den Titel des Themas.

Aufbau einer DOS-Hilfedatei

Das Wichtigste in einer MS-DOS Hilfedatei ist die Hilfedatenbank, die von HELPMAKE erstellt wird. Sie enthält die Informationen für das Leseprogramm (zum Beispiel QuickHelp). Die Datenbank hat immer denselben Namen wie der Dateiname auf dem Speichermedium (Festplatte etc.). Die Hilfedatei (.HLP) kann eine einzige oder mehrere Hilfedatenbanken (Hilfesysteme) enthalten. Um dies zu erreichen, kann man den MS-DOS-Befehl COPY benutzen:

COPY help1.hlp /b + help2.hlp /b + help3.hlp /b myhelp.hlp

Mit Helpmake kann man aber auch aus einer physikalischen Hilfedatei wieder die Hilfedatenbanken extrahieren, um zum Beispiel eine Hilfedatei zu dekompilieren. Jedoch ist eine einzelne Hilfedatenbank vom Reader besser zu durchsuchen als ein Hilfesystem.

Formate für Helpmake

HELPMAKE unterstützt drei Formate:

  1. QuickHelp Format
  2. Rich Text Format (.RTF)
  3. Minimal formatiertes ASCII

Ein Hilfesystem kann alle drei Formate gleichzeitig verwenden.

Bedienung

Syntax

HELPMAKE {/E[n] | /D[c] | /H | /?} [options] sourcefiles Options

Optionen[1]

Option Wirkung
/Ac Gibt c als applikations-spezifische Steuerzeichen für die Hilfe-Datenbank, das die Zeile markiert, die spezielle Informationen für den internen Gebrauch durch die Anwendung enthält.
/C Zeigt an, dass bei den contex-Strings zwischen Groß-und Kleinschreibung unterschieden wird, sodass während der Laufzeit bei der Suche auch zwischen Groß-und Kleinschreibung unterschieden wird.
/D Dekompiliert die Hilfedatenbank vollständig.
/DS Teilt die verkettete, komprimierte Hilfe-Datenbank in ihre Komponenten, mit deren ursprünglichen Namen.
/DU Dekompiliert eine Datenbank und entfernt alle Formationen und Querverweise.
/E[n] Erstellt („kompiliert“) eine Hilfe-Datenbank aus einer bestimmten Text-Datei (oder mehreren Dateien). Die optionale Variable n gibt die Stärke der Kompression an. Der Wert n ist eine Zahl im Bereich von 0 bis 15. Wenn keine Zahl angegeben ist, wird so viel wie möglich komprimiert.
Wert von n Art der Kompression
0 No compression
1 Run-length compression
2 Keyword compression
4 Extended keyword compression
8 Huffman compression

Die Elemente können auch kombiniert werden (Run-length compression (1) + Keyword compression (2) = 3)

/H[ELP] Ruft QuickHelp auf. Wenn QuickHelp nicht gefunden werden kann, zeigt Helpmake eine Zusammenfassung der Command-line-Syntax an.
/Kfilename Gibt eine Datei mit Wort-Trennzeichen an. Diese Datei muss eine Zeile der Zeichen enthalten, die die Wörter voneinander trennen. ASCII-Zeichen zwischen 0 und 32 (einschließlich Leerzeichen) und das Zeichen 127 sind immer Separatoren. Wenn die /K-Option nicht angegeben ist, sind die folgenden Zeichen ebenfalls Separatoren: !"#&'()*+-,/:;<=>?@[ \ ]^_`{ \) ~
/L Schützt die Datei, sodass sie später nicht mehr von Helpmake dekompiliert werden kann.
/NOLOGO Unterdrückt die Copyright-Hinweise
/Ooutfile outfile ist der Name der zu erstellenden Hilfedatei. Der Name outfile ist optional mit der /D-Option
/Sn Bestimmt den Typ der Quelldatei:
Wert von n Art der Quelldatei
/S1 Rich Text format
/S2 QuickHelp Format
/S3 ASCII
/T Während des Kompilierens werden dot commands zu programmspezifischen Befehlen übersetzt. Während des Dekompilierens werden programmspezifische befehle zu dot commands übersetzt. Diese Option benötigt die /A:-Option.
/V[n] Legt die Ausführlichkeit der Diagnose- und Informations-Ausgabe, je nach dem Wert von n fest. Der Wert von n liegt im Bereich von 0 bis 6.
Wert von n Art der Diagnose
/V Maximum
/V0 Keine Diagnose und kein Banner
/V1 Nur den HELPMAKE-Banner
/V2 Namen der Durchgänge
/V3 Kontext-Zeichenfolgen des ersten Durchgangs
/V4 Kontext-Zeichenfolgen von jedem Durchgang
/V5 Alle Zwischenschritte in jedem Durchgang
/V6 Statistiken zur Hilfe-Datei und Kompression
/Wwidth Hier können Sie die feste Breite der sich daraus ergebenden Hilfe-Text in Anzahl von Zeichen festlegen. Der Wert der Breite kann von 11 bis 255 reichen.
/? Gibt eine Zusammenfassung aller Optionen aus.

Quellenangaben

Weblinks


[[Kategorie:Microsoft]] [[Kategorie:DOS-Software]] [[Kategorie:Programmierwerkzeug]] [[Kategorie:Programmierung]]