home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / software / varie / change / change.dok < prev    next >
Text File  |  2000-01-07  |  12KB  |  254 lines

  1. Dieses Programm dient zum Ändern oder Erkennen verschiedener Zeichenketten
  2. in Dateien. Sie können damit in einem Binär- oder Textfile bestimmte
  3. Zeichenfolgen suchen und diese durch andere ersetzen lassen. Haben Sie zum
  4. Beispiel ein Programm völlig konfiguriert und Sie ändern nachher die Pfade
  5. der Datei, weil Sie sich eine neue Festplatte gekauft haben, so müssen Sie
  6. nicht alles erneuern, sondern Sie lassen nur die Pfad-Zeichenkette suchen
  7. und ersetzen.
  8.  
  9. Es wurde von Dirk Stöcker mit MaxonC++ und später SAS-C programmiert und
  10. ist Public Domain. Ich gebe alle Rechte und damit alle Pflichten an dem
  11. Programm auf. Ich gebe keinerlei Garantie für das ordnungsgemäße
  12. Funktionieren des Programmes.
  13.  
  14. Seit Version 2.0 besitzt Change eine graphische Benutzeroberfläche. Die
  15. Bedienelemente entsprechen den Parametern in der Shell. Zu dieser Ober-
  16. fläche gelangen sie durch einen Doppelklick auf das Icon oder durch einen
  17. parameterlosen Aufruf aus der Shell.
  18.  
  19. Dieses Programm benötigt mindestens OS2.0 (V37).
  20.  
  21. Die Geschichte des Programms steht im Source Code -> source/Change/Change.c
  22.  
  23. Mit dieser Meldung begrüßt Sie das Programm beim Aufruf mit '?'.
  24. -->  Change ?
  25.  
  26. FROM/A,SSTRING,TO,RSTRING,FOUND/S,HEX/S,LENGTH/S,NOCHANGE/S,NOSIZE/S,
  27. OVERWRITE/S,PATH/S,POS=POSITION/K,SFILE/K,RFILE/K:
  28.  
  29. Geben Sie nochmal '?' ein, so kommt eine genauere Erklärung.
  30.  
  31. Mit "Version Change" erhalten Sie die Versionsnummer des Programmes.
  32.  
  33. Parametererklärung:
  34. FROM        ist das schon existierende File aus dem gelesen wird.
  35.         Seit Version 2.33 unterstützt Change auch Filepatterns.
  36.         Siehe dazu die Erklärung weiter unten.
  37.         > muß immer angegeben werden.
  38. SSTRING        sind die zu suchenden Zeichen.
  39.                 > muß immer angegeben werden, siehe auch SFILE.
  40. TO        ist das File in das geschrieben wird. Es muß noch nicht
  41.                 existieren. Wenn für das Zielfile das Quellfile oder ""
  42.                 angegeben wird, so wird in das Ausgangsfile gespeichert
  43.                 > muß außer bei NOCHANGE immer angegeben werden.
  44. RSTRING        ist der Ersatz für den <source string>.
  45.                 > muß nicht angegeben werden (wenn nicht angegeben, dann
  46.                   leer), siehe auch RFILE
  47. FOUND           gibt eine Meldung aus, wenn der SSTRING gefunden wurde
  48.         (z.B. String gefunden bei 32C). Die Zahl ist der hexa-
  49.         dezimale Code der Position.
  50.                 > muß nicht angegeben werden (bei NOCHANGE überflüssig).
  51. HEX             ermöglicht die Eingabe der Zeichenketten in hexadezima-
  52.                 ler Schreibweise. (Manche Zeichen kann man nicht über
  53.                 Tastatur eingeben, z.B. Return, oder werden von der
  54.                 Shell nicht weitergeleitet, z.B. das ';'.
  55.                 > muß nicht angegeben werden.
  56. LENGTH          ändert das Zeichen vor dem Wechsel um die veränderte
  57.                 Länge - bestimmte Programme legen dort die Längeninfor-
  58.                 mation ab (entspricht einem BCPL-String: BSTR).
  59.                 > muß nicht angegeben werden (bei NOCHANGE überflüssig
  60.                   und unnötig, wenn Länge des SSTRING gleich der Länge
  61.                   des RSTRING).
  62. NOCHANGE        Hiermit wird das Ersetzen ausgeschaltet.
  63.                 Die Position wird wie bei FOUND automatisch ausgegeben.
  64.                 Die Parameter TO, LENGTH, FOUND, OVERWRITE, PATH und
  65.                 RSTRING sind überflüssig.
  66.                 > muß nicht angegeben werden.
  67. NOSIZE          schaltet die Groß-/Kleinunterscheidung aus
  68.                 > muß nicht angegeben werden
  69. OVERWRITE       überschreibt die Zeichen hinter dem SSTRING, wenn der
  70.         RSTRING länger ist. Ist er kürzer, so wird mit 0 aufge-
  71.         füllt.
  72.         Ist der RSTRING länger als der SSTRING und die gefundene
  73.         Position nahe dem Fileende, kann das File zu lange werden.
  74.                 > muß nicht angegeben werden (unnötig, wenn Länge des
  75.                 SSTRING gleich der Länge des RSTRING).
  76.                 > bei PATH ausgeschaltet
  77. PATH            Damit können ganze Pfade ersetzt werden. Wenn die zwei
  78.                 Strings sich in der Länge unterscheiden, so wird
  79.                 ähnlich wie bei OVERWRITE überschrieben oder mit 0 auf-
  80.                 gefüllt, aber erst, wenn das 0-Zeichen erkannt wird.
  81.                 Damit kann man z.B. Pfadangaben in Files ersetzen, die
  82.                 nach den Namen Nullen schreiben. Mit dieser Option bleibt
  83.                 der Pfad zusammen.
  84.         Ist der RSTRING länger als der SSTRING und die gefundene
  85.         Position nahe dem Fileende, kann das File zu lange werden.
  86.                 > bei gleichen Längen ausgeschaltet
  87. ALL        Durchsuchen von Unterverzeichnisen wird aktiviert
  88.         > muß nicht angegeben werden
  89. POS             Abkürzung für POSITION
  90. POSITION        Hinter POSITION muß in hexadezimaler Schreibweise die
  91.                 Position des zu ersetzenden string angegeben werden.
  92.                 Nur an dieser Stelle wird ersetzt. (Bei Eingabe von 0
  93.                 werden alle strings ersetzt. Die Positionen können Sie
  94.                 vorneweg mit dem Parameter NOCHANGE erfahren.
  95.                 > muß nicht angegeben werden (bei NOCHANGE überflüssig)
  96. SFILE        Anstatt SSTRING anzugeben, können Sie den Text auch in
  97.         einer Datei speichern und den Dateinamen nach dem
  98.         Schlüsselwort SFILE angeben. Das Schlüsselwort muß immer
  99.         mit angegeben werden! 
  100. RFILE        Anstatt RSTRING anzugeben, können Sie den Text auch in
  101.         einer Datei speichern und den Dateinamen nach dem
  102.         Schlüsselwort RFILE angeben. Das Schlüsselwort muß immer
  103.         mit angegeben werden! 
  104.  
  105. Bei FROM und TO ist der volle Pfad vom aktuellen Verzeichnis oder von
  106. einem Grundverzeichnis aus nötig.
  107.  
  108. When SFILE genutzt wird und SSTRING angegeben wurde, aber kein Name für TO,
  109. dann wird der SSTRING als TO genutzt. Ansonsten wäre es nötig, generell das
  110. Schlüsselwort TO anzugeben.
  111. Beispiel:
  112.   Change file1 SFILE files file2
  113. bedeutet in Wirklichkeit
  114.   Change FROM file1 SFILE files SSTRING file2
  115. aber es wird interpretiert als
  116.   Change FROM file1 SFILE files TO file2
  117. was wahrscheinlich eher dem gewünschten entspricht.
  118.  
  119. Wenn die Optionen RFILE oder SFILE genutzt werden, sollten generell die
  120. Schlüsselwörter FROM, TO, SSTRING und RSTRING vor den jeweiligen Texten
  121. angegeben werden, um Fehler zu vermeiden.
  122.  
  123. File-Patterns: Change unterstützt die Nutzung von Filepattern. Wenn
  124. mehrere Eingabedateien existieren muß das Ziel demenstprechend ein 
  125. Verzeichnis sein. Deshalb existieren verschiedene Fälle:
  126. 1) Eine Eingabedatei und eine Ausgabedatei
  127.    - Change bearbeitet die Eingabedatei und speichert sie unter dem
  128.      Zielnamen.
  129. 2) Eine Eingabedatei und ein Zielverzeichnis
  130.    - Change bearbeitet die Datei und speichert sie unter dem gleichen
  131.      Namen im Zielverzeichnis.
  132. 3) Mehrere Eingabedateien und ein Zielverzeichnis
  133.    - Change bearbeitet die Datein (mit dem ALL Parameter auch aus Unter-
  134.      verzeichnissen) und speichert sie unter dem gleichen Namen im Ziel-
  135.      verzeichnis.
  136. 4) Mehrere Eingabedateien und nur eine Zieldatei.
  137.    - Change bearbeitet die erste Datei und bringt dann eine Fehlermeldung.
  138. 5) Keine Zielangabe
  139.    - Change ersetzt die Datei(en).
  140.  
  141. Mit den Parametern NOCHANGE und POSITION werden möglicherweise mehr Strings
  142. gefunden, als bei einem normalen Changedurchgang ersetzt werden können. Das
  143. liegt daran, daß diese Optionen auch überlappende Stellen anzeigen.
  144.  
  145. Wenn die Schlüsselworte nicht angegeben werden, ist der erste String FROM,
  146. der zweite SSTRING, der dritte TO und der vierte RSTRING.
  147.  
  148. Change kann auch einen String verarbeiten, in dem ein Pattern einhalten ist.
  149. Setzt man bei hexadezimaler Eingabe ein ? ein, so wird an dieser Stelle
  150. jeder Buchstabe akzeptiert.
  151. Bei normaler Eingabe bedeutet \? den Pattern und \\ den \, kommt nach dem \
  152. eine zweistellige HEX-Zahl, so wird \.. in das ASCII-Zeichen der Zahl umge-
  153. wandelt. (sehen Sie bei den Beispielen nach)
  154. Bei hexadezimaler Eingabe werden alle Zeichen ungleich (0..9 a..f A..F ?)
  155. den geforderten ignoriert. Sie können also zum Beispiel Striche einsetzen,
  156. um die Lesbarkeit zu erhöhen.
  157. 123a4b52349f009a entspricht also 123a_4b52_349f_009a oder 
  158. 123a.4b52.349f.009a oder 1-2-3-a-4-b-5-2-3-4-9-f-0-0-9-a.
  159.  
  160. Am Anfang gibt das Programm noch einmal den zu suchenden und den Ersatz-
  161. string aus:
  162. dargestellt werden Zeichen zwischen 20 und 126 und zwischen 161 und 255
  163. Invers dargestellte Zeichen stehen für andere Zeichen
  164. . bedeutet dabei ein nicht darstellbares Zeichen
  165. _ bedeutet einen Pattern
  166.  
  167. Am Ende gibt das Programm einen Status aus:
  168. String ... times found and ... times changed
  169.  
  170. Beispiele:
  171. Sie suchen im File SYS:Texte/S den Namen Goethe:
  172. --> Change SYS:Texte/S Goethe NOCHANGE
  173.  
  174. In hexadezimaler Eingabe sieht das so aus:
  175. --> Change SYS:Texte/S 476F6574_6865 NOCHANGE HEX
  176.  
  177. Wollen Sie den Namen in Schiller ändern so müssen Sie noch ein Ziel
  178. (z.B. SYS:Texte/S2) angeben und NOCHANGE entfernen:
  179. --> Change SYS:Texte/S Goethe SYS:Texte/S2 Schiller
  180.  
  181. Mit NOSIZE können Sie auch nach goethe oder GOETHE oder GoEtHe
  182. suchen lassen und FOUND zeigt Ihnen einen Fund an:
  183. --> Change SYS:Texte/S Goethe SYS:Texte/S2 Schiller NOSIZE FOUND
  184.  
  185. Geben Sie vorher den CD-Befehl auf den Pfad ein, so verkürzt sich der
  186. Befehl:
  187. --> CD SYS:Texte
  188.     Change S Goethe S2 Schiller NOSIZE FOUND
  189.  
  190. Wollen Sie zum Bsp. goethe und GoEtHe und GOETHE durch die richtige
  191. Form Goethe ersetzen. Kein Problem:
  192. --> Change S goethe S2 Goethe NOSIZE
  193.  
  194. Soll Goethe nur an einer Stelle ersetzt werden, so nutzen Sie POSITION:
  195. --> Change S goethe S2 Goethe POSITION D3 NOSIZE
  196.  
  197. Alternativ dazu ist:
  198. --> Change S goethe S2 Goethe POS D3 NOSIZE
  199.  
  200. Besitzen die Zeichenketten ein Leerzeichen so nutzen Sie "":
  201. --> Change S "Goethes Geburtshaus" S2 "Schillers Geburtshaus"
  202.  
  203. Sie können den SSTRING auch aus dem Text löschen:
  204. --> Change S "Goethe" S2 ""            oder
  205. --> Change S "Goethe" S2
  206.  
  207. Falls sie alle ähnlichen Wörter ersetzen wollen, wie zum Beispiel
  208. Disc und Disk gegen Diskette, so nutzen Sie einen Pattern:
  209.  
  210. --> Change S Dis\? S2 Diskette
  211.  
  212. oder
  213.  
  214. --> Change S 446973? S2 4469736B_65747465 HEX
  215.  
  216. Wollen Sie nach einem \ suchen, so müssen Sie zwei eingeben (also immer
  217. doppelt so viele - bei 20 zu suchenden also 40)
  218.  
  219. --> Change S \\ S2 /            --> das wechselt \ zu /
  220.  
  221. --> Change S \\\\ S2 //         --> das wechselt \\ zu //
  222.  
  223. --> Change S \\? S2 /?          --> das wechselt \? zu /?
  224.  
  225. aber VORSICHT !
  226.  
  227. --> Change S \? S2 /?           --> das wechselt jedes Zeichen zu /?
  228.  
  229. Setzen Sie für SSTRING "" ein, so erscheint eine Fehlermeldung.
  230.  
  231. Mögliche zukünftige Erweiterungen:
  232.  
  233. Pattern * für beliebige Zeichen oder Standard Amiga Pattern, wie #, ~, ().
  234. Lokalisierung und damit auch deutsche Texte (Fehlermeldungen sind ja schon
  235. vom Betriebssystem lokalisiert!)
  236.  
  237. Dieses Programm ist Public Domain. So können es frei vertreiben und nutzen.
  238. Für die korrekte Funktionsweise wird jedoch keinerlei Garantie übernommen.
  239.  
  240. Kommentare, Wünsche, Geld (ist zwar Public Domain, nehme es aber trotzdem),
  241. Grüße, Bugreports und ähnliches an
  242.   
  243. ************************************************************************
  244. * snail-mail:                  * e-mail:                               *
  245. *   Dirk Stoecker              *   stoecker@amigaworld.com             *
  246. *   Geschwister-Scholl-Str. 10 *   dstoecker@gmx.de                    *
  247. *   01877 Bischofswerda        * world wide web:                       *
  248. *   GERMANY                    *   http://home.pages.de/~Gremlin/      *
  249. * phone:                       * pgp key:                              *
  250. *   GERMANY +49 (0)3594/706666 *   get with finger or from WWW pages   *
  251. ************************************************************************
  252.  
  253. Viel Glück mit dem neuen Programm!
  254.