home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d9xx
/
d936
/
tked.lha
/
TKEd
/
Help
/
Help.tked
< prev
next >
Wrap
Text File
|
1993-12-20
|
5KB
|
164 lines
/** Arexx Programm um das Wort unter dem Cursor
** in einer Hilfs-Datei zu suchen, und den
** entsprechenden Hilfstext auszugeben.
**
** Installation : In TKEd-AREXX-Menus mit
** async noreq Help.tked TKEd:Help/ARexx.hlp
**
** Programm von : Christoph Kirsch, 1992
**
** Hilfs-Datei : In der Variable HDatei definiert.
** Trennzeichen : Jeder Hilfstext wird durch die in der Variable
** TZeichen definierte Zeichenfolge abgeschlossen.
**
** Ergänzung von: Tom Kroener
** Cursor braucht nicht mehr auf dem ersten Buchstaben
** des Wortes zu stehen, sondern kann beliebig im Wort
** positioniert sein; außerdem wurden ein paar potentielle
** Fehlerquellen (keine Leerzeichen, sondern ~+-* usw.
** zwischen den Worten) beseitigt
**-----------------------------------------------------------------------
** AREXX-program to search for the current word in a special help-
** file and display a helptext (if the word was found; see the
** name under the *** in the helpfiles in the directory 'TKEd:Help'
** for examples)
** Installation : Into the TKEd-AREXX-menus:
** async noreq Help.tked TKEd:Help/ARexx.hlp
**
** Help-file : The name is defined in the variable HDatei
** Each help-text is ended by the TZeichen variable
**/
options results
address 'TKEd.1'
HDatei = arg(1) /* Hilfsdatei wird übergeben */
MakeTitle "Ich suche..."
TZeichen = "***" /* Trennzeichen */
OderCode = "*"
Ende = 0
DO WHILE Ende = 0
GetColumnNr
IF result = 1 THEN Ende = 1
Cursor "LEFT"
GetChar
IF (result=" ") | (result='(') | (result=')') | (result='=') | (result='/') | (result='*') | (result='-') | (result='+') | (result='|') | (result='~') | (result='#') | (result=';') | (result='"') | (result="'")
THEN DO
Ende = 1
NextWord
END;
END;
GetChar
Zeichen = result
GetChar /* Zeichen unter Cursor */
Zeichen = result
Ende = 0
Wort = Zeichen /* Wort unter Cursor */
GetLineLen /* Zeilenlänge feststellen */
MaxSpalte = result+1
DO WHILE Ende = 0 /* Nächstes Leerzeichen */
Cursor "RIGHT" /* oder Zeilenende suchen */
GetChar /* und solange Buchstaben */
Zeichen = result /* anhängen */
GetColumnNr
Spalte = result
IF Spalte = MaxSpalte THEN Ende = 1
IF (Zeichen=" ") | (Zeichen='(') | (Zeichen=')') | (Zeichen='=') | (Zeichen='/') | (Zeichen='*') | (Zeichen='-') | (Zeichen='+') | (Zeichen='|') | (Zeichen='~') | (Zeichen='#') | (Zeichen=';') | (Zeichen="'") | (Zeichen='"') THEN Ende = 1
IF Ende = 0 THEN Wort = Wort || Zeichen
END;
Wort = upper(Wort)
IF ~open('datei',HDatei,'Read') /* Hilfsdatei öffnen */
THEN DO
Request1 "Kann Hilfsdatei nicht öffnen!"
EXIT 5
END
DO WHILE ~EOF('datei') /* Trennzeichen suchen */
Text = ReadLn('datei')
IF Text = TZeichen /* Wenn gefunden, dann ist nächste */
THEN DO /* Zeile ein Suchbegriff */
Abb = 0
Ja = 0
DO WHILE (Abb = 0)
Text = ReadLn('datei') /* Suchbegriff vergleichen */
IF Wort = upper(Text)
THEN DO
Ja = 1
Abb = 1
END
ELSE DO
Text = ReadLn('datei')
IF ~(Text = OderCode) THEN Abb = 1
END
END
IF Ja = 1
THEN DO /* wenn gleich, dann */
WBtoFront
call open('hcon','CON:0/11/640/189/Hilfe')
DO WHILE ~EOF('datei')
Text = ReadLn('datei')
DO WHILE (Text = OderCode)
Text = ReadLn('datei')
Text = ReadLn('datei')
END
IF ~(Text = TZeichen) THEN call WriteLn('hcon',Text)
ELSE BREAK
END
call WriteLn('hcon','RETURN drücken.')
call ReadLn 'hcon'
call Close('hcon')
call Close('datei')
TKEdToFront
EXIT 0
END
END
END
call close('datei') /* keinen Text gefunden */
Request2 "Keinen Hilfstext gefunden! Stichworte zeigen?"
index = result
if index=10 then exit 0 /* kein Index -> Ende */
IF ~open('datei',HDatei,'Read') /* Hilfsdatei erneut öffnen */
THEN DO
Request1 "Kann Hilfsdatei nicht öffnen!"
EXIT 5
END
WBtoFront
call open('hcon','CON:0/11/640/189/Mögliche Stichworte')
voll = 0 /* Alle Stichworte anzeigen */
do while ~eof('datei')
text = readln('datei')
if (text = TZeichen) | (text = OderCode)
then do
text = readln('datei')
call writeln('hcon',text)
voll = voll + 1
if voll = 19
then do
call writeln('hcon','')
call writeln('hcon','RETURN drücken für mehr.')
call readln 'hcon'
voll = 0
end
end
end
call writeln('hcon','ENDE - Taste drücken.')
call readln 'hcon'
TKEdtoFront
call close('datei')
EXIT 0