★ APPLICATIONS ★ DIVERS ★ SORT-PACK|SCHNEIDER MAGAZIN) ★![]() |
Sort-Pack (Schneider Magazin) | Applications Divers |
Wenn Sie schon einmal versucht haben, eine eigene Adreßverwaltung oder eine Schallplattenkartei zu schreiben, ist Ihnen sicher das Problem begegnet, wie sich die eingegebenen Daten sortieren lassen. Eine entsprechende Routine in Basic, selbst wenn man sie gut programmiert, benötigt ihre Zeit. Dabei dauert nicht nur das Ordnen selbst, sondern z.B. bei Strings auch die Garbage Collection so lange, daß die Wartezeit selbst bei Heimanwendungen störend auffällt. Dieses Problem können Sie bei ”Sort-Pack” vergessen. Das Programm stellt Ihnen leistungsfähige RSX-Befehle zur Verfügung, mit denen Sie alle anfallenden Sortieraufgaben erledigen können. Die Kommandos werden zunächst einzeln aufgeführt; dann folgen Hinweise zum Eingeben des Basic-Laders und Einbinden in eigene Programme. Die Befehle von Sort-Pack |MOVE, anfangsadresse, zieladresse, bytezahl Ein Block von bytezahl Bytes wird von anfangs-adresse nach zieladresse verschoben. Die Blöcke können sich überlappen. Dieser Befehl ist besonders praktisch, wenn Sie eine String-Variable mitten aus einem eindimensionalen Feld löschen möchten. Als Beispiel wollen wir ein Feld d$ (500) annehmen, das die Namen Ihrer Disketten enthält. Sie wollen nun d$ (34) löschen, weil diese Diskettenseite zerstört wurde. Bisher mußten Sie folgendes schreiben: 10 FOR i = 34 TO 499:d$ (i) = d$ (i + 1): NEXT Jetzt können Sie mit |MOVE arbeiten (wird wesentlich schneller ausgeführt): 10 |MOVE, @d$ (34 + 1), @d$ (34), (500-34) *3 Dazu müssen Sie lediglich wissen, daß der entscheidende Teil einer String-Variablen (ihr Deskriptor) drei Byte lang ist und nur alle Deskriptoren ab d$ (i + 1) um drei Byte nach unten zu schieben sind, um d$ (i) zu löschen. Beachten Sie hier aber bitte, daß d$ (500) jetzt auf denselben String wie d$ (499) weist! Deshalb sollten Sie eine Anweisung wie d$ (500) = ”” folgen lassen. Arrays vom Integer-Typ sind entsprechend zu behandeln, jedoch ist eine Integer-Variable nur zwei Byte lang (also |MOVE, @d% (34 + 1), @d% (34), (500-34) *2). Real-Variablen umfassen fünf Byte. |SWAP, @variable1 , @variable2, typ Hier werden zwei Variablen vertauscht, wobei typ folgende Werte annehmen kann: 2 für Integer-Variablen, 3 für String-Variablen und 5 für Real-Variablen. Auch dazu ein Beispiel: |SWAP, @a$, @b$, 3. Es werden die Inhalte von a$ und b$ vertauscht. Bei String-Variablen entsteht keine Garbage Collection, da nur ein Tausch der Deskriptoren erfolgt. Es sind außer 2, 3 oder 5 auch andere Werte für typ möglich. Sollten Sie gerne experimentieren, so wird Sie sicher folgendes interessieren: |SWAP vertauscht zwei Speicherbereiche unintelligent. (Überlappen führt also zu verqueren Ergebnissen.) Bei typ wird nur das Low-Byte berücksichtigt; typ kann also sinnvoll nur Werte bis 255 annehmen. |PARAM, grossklein Dieser Befehl bezieht sich auf |SORT, |SORTIN und |COMPARE. Bei allen Vergleichen, die in ihrem Rahmen stattfinden, wird die Groß- und Kleinschreibung dann außer acht gelassen, wenn grossklein = 0 ist. Sonst wird sie (auch bei den deutschen Sonderzeichen!) berücksichtigt. |EXTRA, @sonder$ sonder$ muß ein sieben Zeichen langer String sein. Er enthält die von Ihnen vorgesehenen Zeichen, die als deutsche Sonderzeichen interpretiert werden sollen. Sie sind in der Reihenfolge Ä,Ö,Ü,ä,ö,ü,ß anzugeben. Das sieht dann z. B. so aus: 10 sonder$ = ”][\ {}|~": |EXTRA, @sonder$ Diese Zeichentabelle wird für die Befehle |SORT, |SORTIN und |COMPARE berücksichtigt. Folgende Zeichen können natürlich nicht Sonderzeichen sein: A... Z, a... z. |COMPARE, @a$, @b$, @result% Die Strings a$ und b$ werden verglichen. Ist a$< = b$, erfolgt in result% die Rückgabe von Null, bei a$> b$ die von Eins. result% muß eine Integer-Variable sein; ihr ist zuvor ein Wert zuzuweisen, z.B.: 10 DEFINT a-z: result = 0:a$ = ”ich bin kleiner” :b$ =”wir sind groesser” |
| ![]() |
|
L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous! |
CPCrulez[Content Management System] v8.7-desktop/cache L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |