[Tustep-Liste] Segment aus Datei ansprechen

Kuno Sch�lkle Schaelkle at zdv.uni-tuebingen.de
Mi Mai 9 12:30:31 CEST 2007


Lieber Herr Reeg,

> gibt es eine einfache Möglichkeit beim Lesen mit ACCESS
> nur ein bestimmten Segment zu lesen?

es gibt eine Moeglichkeit. Das folgende Makro kopiert ein Segment
aus der Quelldatei in die Zieldatei. Zuerst wird im Inhaltsverzeichnis
nach dem gewuenschten Segment gesucht, dann die Seitennummer
des Segments berechnet und schliesslich das Segment kopiert:

---------------------------------------------------------
$$= - {}
MODE VARIABLE

BUILD S_TABLE anfang  = ":#=<> :"
BUILD S_TABLE ende    = ": :"
BUILD R_TABLE segment = ":{segment}:"

ACCESS q: READ/RECORDS        "{quelle}" s.z/u, txt
ACCESS z: WRITE/ERASE/RECORDS "{ziel}"   s.z/u, txt

FIND/NEXT q (anfang, ende; segment; -; -) UPTO 1.0

SET seite = s = z*10 + u/100, z = u = 0

IF (seite.EQ.0)  THEN
   PRINT/ERROR "Segment ", segment, " nicht gefunden"
ELSE
   LOOP/999999
      READ/NEXT/EXIT q
      IF (s.GT.seite)  EXIT
      WRITE z
   ENDLOOP
ENDIF

ENDACCESS q
ENDACCESS z
---------------------------------------------------------

Einfacher liesse sich das Segment mit FILE einlesen
und ggf. in eine Datei schreiben:

SET daten = FILE (quelle, "{segment}")

FILE/ERASE/PROGRAM "{ziel}" = daten

Herzliche Gruesse
Kuno Schaelkle



Mehr Informationen über die Mailingliste Tustep-Liste