home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
development
/
clusterdemo.dms
/
clusterdemo.adf
/
Modules.lha
/
modules
/
txt
/
Strings.def
< prev
next >
Wrap
Text File
|
1994-05-25
|
12KB
|
370 lines
|##########|
|#MAGIC #|CLABLJFA
|#PROJECT #|""
|#PATHS #|"StdProject"
|#FLAGS #|xx---x--x---x-x-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
|==============================================================================|
| Modul : Strings |
| Autor : Thomas Pfrengle + Ulrich Sigmund |
| Datum : 29.9.1991 |
| Verwendung : Bearbeitung von ClusterStrings mit Laufzeitchecks. |
| Änderungen : - |
|==============================================================================|
DEFINITION MODULE Strings;
FROM System IMPORT Regs,SysStringPtr,Equation;
FROM Dos IMPORT BSTR;
FROM Resources IMPORT ContextPtr,NoContext;
FROM Exceptions IMPORT RangeViolation;
TYPE
MString = ARRAY OF CHAR;
(*=========================== Compare ========================================*)
|
| Funktion : Prüft zwei Strings auf Gleichheit.
| Parameter : str1,str2 <- String, die verglichen werden sollen.
| -> TRUE wenn gleich.
| tested
PROCEDURE Equal(REF str1 IN A0,
str2 IN A1 : STRING): BOOLEAN;
|
| Funktion : Wie Equal, jedoch ohne Beachtung der Groß/Kleinschreibung (a=A)*)
|
| tested
PROCEDURE CapsEqual(REF str1 IN A0,
str2 IN A1 : STRING):BOOLEAN;
|
| Funktion : Wie CapsEqual, jedoch für BCPL-Strings.
|
PROCEDURE BCPL_Equal(str1 IN A0,
str2 IN A1 : BSTR):BOOLEAN;
|
| Funktion : Prüft ob str1 größer als str2 ist.
| Parameter : str1,str2 <- String, die verglichen werden sollen.
| -> TRUE wenn str1 größer str2.
| tested
PROCEDURE Greater(REF str1 IN A0,
str2 IN A1 : STRING):BOOLEAN;
|
| Funktion : Prüft ob str1 größer als str2 ist. Ohne Berücksichtigung der
| Groß/Kleinschreibung.
| Parameter : str1,str2 <- String, die verglichen werden sollen.
| -> TRUE wenn str1 größer str2.
| tested
PROCEDURE CapsGreater(REF str1 IN A0,
str2 IN A1 : STRING):BOOLEAN;
|
| Funktion : Vergleicht zwei Strings.
| Parameter : str1,str2 <- String, die verglichen werden sollen.
| -> smaller = str1 kleiner str2
| equal = str1 gleich str2
| greater = str1 größer str2
| tested
PROCEDURE Compare(REF str1 IN A0,
str2 IN A1 : STRING):Equation;
(*======================= Search =============================================*)
|
| Funktion : Sucht nach dem ersten Auftreten eines Zeichens.
| Parameter : str <- String in dem gesucht werden soll.
| Ch <- Zeichen, das gesucht werden soll.
| -> Position des gesuchten Zeichens.
| Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
|
PROCEDURE First(REF str IN A0 : STRING;ch IN D2 : CHAR):INTEGER;
|
| Funktion : Sucht nach dem nächsten Auftreten eines Zeichens.
| Parameter : str <- String in dem gesucht werden soll.
| Ch <- Zeichen, das gesucht werden soll.
| pos <- Position ab der gesucht wird.
| -> Position des gesuchten Zeichens.
| Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
|
PROCEDURE Next(REF str IN A0 : STRING;ch IN D2 : CHAR;pos IN D3 : INTEGER):INTEGER;
|
| Funktion : Sucht nach dem letzten Auftreten eines Zeichens
| Parameter : str <- String in dem gesucht werden soll.
| ch <- Zeichen, das gesucht werden soll.
| -> Position des gesuchten Zeichens.
| Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
|
| tested
PROCEDURE Last(REF str IN A0 : STRING;ch IN D2 : CHAR):INTEGER;
|
| Funktion : Sucht nach dem voherigen Auftreten eines Zeichens.
| Parameter : str <- String in dem gesucht werden soll.
| ch <- Zeichen, das gesucht werden soll.
| pos <- Position ab der gesucht wird.
| -> Position des gesuchten Zeichens.
| Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
|
| tested
PROCEDURE Prev(REF str IN A0 : STRING;ch IN D2 : CHAR;pos IN D3 : INTEGER):INTEGER;
|
| Funktion : Sucht nach dem ersten Auftreten eines Strings in einem anderen
| Parameter : find <- String, der gesucht werden soll.
| in <- String, in dem gesucht werden soll.
| -> Position des gesuchten Strings.
| Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
|
| tested
PROCEDURE Search(REF find,in : STRING):INTEGER;
|
| Funktion : Sucht nach dem nächsten Auftreten eines Strings.
| Parameter : find <- String, der gesucht werden soll.
| in <- String, in dem gesucht werden soll.
| pos <- Position ab der gesucht wird.
| -> Position des gesuchten Strings.
| Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
|
| tested
PROCEDURE SearchNext(REF find,in : STRING;pos : CARDINAL):INTEGER;
(*====================== Modify ==============================================*)
|
| Funktion : Kopiert aus einem String ein Stück aus.
| Parameter : str <- QuellString
| pos <- Position ab der kopiert werden soll.
| len <- Länge des Berichs, der kopiert werden soll.
| -> kopierter Bereich
| tested
$$OwnHeap:=TRUE
PROCEDURE Seg(REF str IN A0 : STRING;pos IN D2,len IN D3 : INTEGER):STRING;
|
| Funktion : Setzt eine Liste von Strings zu einem zusammen.
| Parameter : strs <- Liste von Strings.
| -> zusammengesetzter neuer
| String.
| tested
$$OwnHeap:=TRUE
PROCEDURE Concat(REF strs : LIST OF STRING):STRING;
|
| Funktion : Fügt in einen String ein Stück ein und gibt das Ergebnis zurück*)
| Parameter : str <- String der Eingefügt werden soll.
| into <- String in den eingefügt werden soll.
| pos <- Position, ab der eingefügt werden soll.
| -> Ergebnisstring.
| tested
$$OwnHeap:=TRUE
PROCEDURE Insert(REF str,into : STRING;pos : INTEGER):STRING;
|
| Funktion : Scheidet einen Teil des Strings heraus.
| Parameter : str <- String der als Vorlage dient.
| pos <- Position ab der geschnitten werden soll.
| len <- Länge des Stücke, das ausgeschnitten werden soll.
| -> Ergebnisstring
| tested
$$OwnHeap:=TRUE
PROCEDURE Delete(REF str : STRING;pos,len : INTEGER):STRING;
|
| Funktion : Ersetzt einen Teil eines Strings durch einen anderen.
| Parameter : str <- Quellstring
| Into <- String durch den ein Teil von str ersetzt werden soll.
| pos <- Position, ab der ersetzt werden soll.
| -> Ergebnisstring.
| Bemerkung : Paßt Into nicht in str, wird ein RangeCheck ausgelöst.
|
| tested
$$OwnHeap:=TRUE
PROCEDURE Replace(REF str,into : STRING;pos IN D2 : INTEGER):STRING;
|
| Funktion : Vervielfältigt einen String in einen anderen und gibt diesen
| zurück. Z.B. Dup("Str",3)="StrStrStr".
| Parameter : str <- String der Vervielfälltigt werden soll.
| num <- Zahl der Vervielfälltigungen
| -> Ergebnisstring
| tested
$$OwnHeap:=TRUE
PROCEDURE Dup(REF str IN A0 : STRING;num IN D2 : INTEGER):STRING;
|
| Funktion : Füllt einen Teil eines Strings mit Zeichen.
| Parameter : str <- String, in dem gefüllt werden soll.
| ch <- Zeichen mit dem gefüllt werden soll.
| pos <- Position,ab der gefüllt werden soll.
| len <- Anzahl Felder, die gefüllt werden sollen.
| -> Ergebnisstring
| tested
$$OwnHeap:=TRUE
PROCEDURE Fill(REF str : STRING;ch : CHAR;pos,len : CARDINAL):STRING;
|
| Funktion : Kopiert aus einem String ein Stück heraus.
| Parameter : str <- QuellString
| pos <- Position ab der kopiert werden soll.
| len <- Länge des Berichs, der kopiert werden soll.
| segment -> kopierter Bereich.
|
| tested
PROCEDURE CutOut(REF str IN A0 : STRING;
pos IN D2,
len IN D3 : INTEGER;
VAR segment : STRING);
|
| Funktion : Fügt in einen String ein Stück ein.
| Parameter : dest <- String in den Eingefügt werden soll.
| source <- String der eingefügt werden soll.
| pos <- Position, ab der eingefügt werden soll.
|
| tested
PROCEDURE InsertIn(REF str IN A0 : STRING;
VAR into : STRING;
pos IN D2 : INTEGER);
|
| Funktion : Ersetzt einen Teil eines Strings durch einen anderen.
| Parameter : str <- String in den ein Teil eingesetzt werden soll.
| into <- String durch den ein Teil von str ersetzt werden soll.
| pos <- Position, ab der ersetzt werden soll.
| Bemerkung : Paßt Into nicht in str, bleibt str unverändert.
|
| tested
PROCEDURE ReplaceIn(REF str IN A0 : STRING;
VAR into : STRING;
pos IN D2 : INTEGER);
|
| Funktion : Scheidet einen Teil des Strings heraus.
| Parameter : str <- String aus dem ausgeschnitten werden soll.
| pos <- Position ab der geschnitten werden soll.
| len <- Länge des Stücke, das ausgeschnitten werden soll.
|
|tested
PROCEDURE Erase(VAR str IN A0 : STRING;
pos IN D2,
len IN D3 : INTEGER);
|
| Funktion : Fügt zwei Strings zusammen.
| Parameter : dest <- linker Teil des neuen Strings.
| source <- rechter Teil des neuen Strings.
| dest -> der aus Dest und Source zusammengesetzte neue
| String.
|
| tested
PROCEDURE Append(VAR dest : STRING;REF source IN A1 : STRING);
(*======================== Conversion ========================================*)
|
| Funktion : Gibt einen Zeiger auf einen SystemString zurück nach Übergabe
| eines ClusterStrings.
| Parameter : str <- ClusterString.
| -> Zeiger auf SystemString.
| tested
PROCEDURE SysStr(REF str IN A0 : STRING):SysStringPtr;
|
| Funktion : Gibt einen ClusterString nach übergabe eines Zeigers auf einen
| SystemString zurück.
| Parameter : Ptr <- Zeiger auf SystemString.
| -> ClusterString.
|
$$OwnHeap:=TRUE
PROCEDURE Str(ptr IN A0 : SysStringPtr):STRING;
|
| Funktion : Gibt einen Zeiger auf einen BCPL-String zurück nach Übergabe
| eines ClusterStrings.
| Parameter : str <- ClusterString.
| -> Zeiger auf BCPL-String.
|
PROCEDURE CreateBSTR(REF str IN A0 : STRING;
resident IN D2 : BOOLEAN := FALSE;
context IN A1 : ContextPtr:=NoContext):BSTR;
|
| Funktion : Gibt einen ClusterString nach übergabe eines Zeigers auf einen
| BCPL-String zurück.
| Parameter : ptr <- Zeiger auf BCPL-String.
| -> ClusterString.
|
$$OwnHeap:=TRUE
PROCEDURE BSTRtoString(ptr IN A0 : BSTR):STRING;
|
| Funktion : Wandelt einen Clusterstring in einen ModulaString um.
| eines ClusterStrings.
| Parameter : str <- ClusterString.
| mStr <-> ModulaString.
|
PROCEDURE StrToMStr(REF str IN A0 : STRING;VAR mStr : MString);
|
| Funktion : Gibt einen ClusterString nach übergabe eines ModulaStrings
| zurück.
| Parameter : mStr <- ModulaString.
| -> ClusterString.
|
$$OwnHeap:=TRUE
PROCEDURE MStrToStr(REF mStr : MString):STRING;
GROUP
All = Equation,MString,Equal,CapsEqual,BCPL_Equal,Greater,CapsGreater,
Compare,First,Next,Last,Prev,Search,SearchNext,Seg,Concat,Insert,
Delete,Replace,Dup,Fill,CutOut,InsertIn,ReplaceIn,Erase,Append,
SysStr,Str,CreateBSTR,BSTRtoString,MStrToStr;
END Strings.