home *** CD-ROM | disk | FTP | other *** search
- 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.
-
-
-