home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip: Special Survival Kit
/
Chip_Special_Survival_Kit_fuer_PC_Anwender.iso
/
01tools
/
asciipro
/
switch.doc
< prev
next >
Wrap
Text File
|
1994-09-01
|
6KB
|
138 lines
Beispiel- und Hilfe-Datei für <ASCII-PRO>-ANWENDER
Thema: Komplexe Funktionen wie "NAME + VORNAME" VERTAUSCHEN
K. Th. Hell (c) 1994
Verschiedene Anwender haben immer wieder Spezialfunktionen verlangt.
Es wäre für den Autor praktisch immer möglich, diese Sonderfunktionen
in <ASCII-PRO> zu implementieren, allerdings auf Kosten der Programm-
grösse. Es wird deshalb angestrebt, <ASCII-PRO> nicht unlimitiert zu
vergrössern (sonst droht Speichermangel!), sondern alle diejenigen
Funktionen einzubauen, die notwendig sind, dass bei geschickter
Kombination alle Anforderungen erfüllt werden können.
Mittels der MAKRO-Version von <ASCII-PRO> (die mit sehr wenig Speicher
auskommt), können von Spezialisten entsprechende MAKRO-Dateien kreiert
werden, die dann die gewünschten komplexen Funktionen automatisch
ablaufen lassen. Im folgenden dazu ein Beispiel:
Ein Anwender hat folgende Adressliste:
" Heinz Müller"
"VRENI SCHNEIDER"
"Hans-Werner Fassbinder "
Mit der "Funktion GROSS-klein (1. Buchstabe GROSS - alle andern klein)"
im Menu "TEXTMANIPULATIONEN" erreicht man, dass
"VRENI SCHNEIDER" in "Vreni Schneider" gewandelt wird.
Mit der Funktion "ALLE LEERSTELLEN am ZEILEN-ANFANG/ENDE entfernen"
im Menu "ZEILENMANIPULATIONEN" werden führende und nachfolgende
Leerstellen in jeder Zeile entfernt.
Jetzt sieht die Adressliste so aus:
"Heinz Müller"
"Vreni Schneider"
"Hans-Werner Fassbinder"
Jetzt wird aber gewünscht, dass VORNAME und NAME vertauscht werden!
Auch dies ist möglich: (alle Dateien im gleichen aktiven Verzeichnis)
1. "DELETE.ASC" löschen, falls vorhanden
2. Die Adressdatei kopieren in "SWITCH.DAT"
3. Die MAKRO-Version von <ASCII-PRO> aufrufen mit der
Makro-Datei "SWITCH.MAK" (NICHT beiliegend):
ASCMAKRO.EXE @SWITCH.MAK
Jetzt sind NAME + VORNAME wie gewünscht vertauscht, und gleichzeitig
wurden am Zeilenende noch ev. vorhandene Leerstellen entfernt.
Jede Zeile könnte auch als DATENBANK-Satz mit der Feld-ENDE-Marke
CODE 32 und der Datensatz-ENDE-Marke CODE 13+10 betrachtet werden.
Deshalb sind die 2 Felder der Datenbank definiert. Daraus eine
Datenbank fester Feldlänge mit <ASCII-PRO>-DATENBANK-TOOLS automatisch
erstellen, dann die zwei Felder vertauschen (wiederum mit DATENBANK-
TOOLS), und schliesslich wieder eine Datenbank mit VARIABLER Feldlänge
erstellen (selbstverständlich wiederum mit <ASCII-PRO>).
Mehrere aufeinanderfolgende LEERSTELLEN können auch mit der Funktion
"TEXTMANIPULATIONEN" auf 1 reduziert werden.
Vielleicht ist Ihr Problem aber noch komplexer, weil nach dem Namen
noch die ganze Adresse folgt:
"Heinz Müller;Bahnhofstr.32;12345 Ort"
"Vreni Schneider;Lindenstr.11;D-654321 Dorf"
"Hans-Werner Fassbinder;Torgasse 2A;CH-1234 Stadt"
Hier kann zuerst mittels der Funktion "LÖSCHEN bis 1. MARKE"
im Menu "ZEILENMANIPULATION" Vorname + Name in der Originaldatei
gelöscht (d.h. in die Datei "DELETE.ASC" kopiert) werden,
indem als MARKE ";" [CODE 59] eingegeben wird.
[Vorgängig "DELETE.ASC" löschen!]
Die neue KOPIE kann z.B. "KOPIE.TMP" genannt werden.
In "KOPIE.TMP" steht jetzt:
"Bahnhofstr.32;12345 Ort"
"Lindenstr.11;D-654321 Dorf"
"Torgasse 2A;CH-1234 Stadt"
In "DELETE.ASC" (ev. umbenennen) findet sich:
"Heinz Müller;"
"Vreni Schneider;"
"Hans-Werner Fassbinder;"
In "DELETE.ASC" das Zeichen ";" [CODE 59] vorerst LÖSCHEN,
entweder mit "ZEILENMANIPULATION": letztes Zeichen ABSCHNEIDEN,
oder CODE 59 SUCHEN und durch CODE >0< (ev. >32<) ERSETZEN,
oder SUCHEN nach ";" und ERSETZEN durch NICHTS ("").
Jetzt wie oben das MAKRO "SWITCH.MAK" mit den entsprechenden
Dateinamen auf die Datei "DELETE.ASC" anwenden, was in der neuen
Kopie dann die gewünschten vertauschen Namen + Vornamen ergibt.
An jedem Zeilenende noch eine MARKE ";" einsetzen lassen kreiert
die Datei "DELETE.TMP". Diese korrigierte Datei ebenfalls mittels
<ASCII.PRO> und ZEILENMANIPULATION
"HERAUSKOPIEREN und an anderer Stelle/Datei EINSETZEN"
in die Datei "KOPIE.TMP" zeilenweise an Position 1 einsetzen:
Wenn der Name der zwei Dateien verlangt wird,
1. zuerst die Datei angeben, in die an Zeilen-Position 1
HINEINKOPIERT werden soll ["KOPIE.TMP"]
2. dann die Datei aus der der angegebene Bereich (z.B. 1-100)
HERAUSKOPIERT wird ["DELETE.TMP"].
Das Resultat wird in eine neue Datei mit wählbarem Namen geschrieben.
Eine andere Möglichkeit wäre, die Adressliste als DATENBANK zu
behandeln und mittels <ASCII-PRO> "DATENBANK-TOOLS" in eine
STANDARD-DATEN-FORMAT-ASCII-DATEI (SDF mit fester Feldlänge!)
umzuwandeln:
"Heinz Müller ;Bahnhofstr.32;12345 Ort "
"Vreni Schneider ;Lindenstr.11 ;D-654321 Dorf"
"Hans-Werner Fassbinder;Torgasse 2A ;CH-1234 Stadt"
Dann ist das Feld mit Name und Vorname immer gleich lang, kann
mit der ZEILENMANIPULATIONS-Funktion
"HERAUSSCHNEIDEN von POSITION (x) bis POSITION (y)"
herausgeschnitten, bearbeitet und wieder eingesetzt werden, etc.
Darnach kann diese Datenbank wieder in variable Feldlängen
umgewandelt werden, womit das Ziel auch erreicht ist.
<ASCII-PRO> offeriert meist mehrere Lösungswege für komplexe
Umwandlungen, ev. auch über EINSETZEN einer MARKE an bestimmter
Position oder SUCHEN/ERSETZEN (wobei beim ERSETZEN auch eine MARKE
zusätzlich eingebracht werden kann), dann
- ZEILENWEISES "LÖSCHEN ab/bis MARKE" oder
- "LÖSCHEN von MARKE bis MARKE" (gelöschter Teil in "DELETE.ASC"), etc.
NB: Die beiliegenden Dateien "SWITCH.*" haben folgende Bedeutung:
SWITCH.DOC Dieser Text mit Erläuterungen
SWITCH.DAT Datendatei als Beispiel
Nur für PROFESSIONELLE Version:
Aufruf von "ASCMAKRO.EXE @SWITCH.MAK" schneidet erstes Wort aus
jeder Zeile in "SWITCH.DAT" heraus und setzt es an letzter Stelle in
jeder Zeile wieder ein. Vorgang kreiert Temporärdateien.
Resultat steht in "SWITCH.NEU".
Wenn nur "Vorname Name" in jeder Zeile steht, werden diese VERTAUSCHT.