[Tustep-Liste] Segment aus Datei ansprechen

Dr. Gottfried Reeg reeg at zedat.fu-berlin.de
Mi Mai 9 13:37:20 CEST 2007


Lieber Herr Schälkle,

vielen Dank für Ihre Antwort, die erste Möglichkeit,
war es, die ich gesucht habe, die zweite einfachere
war mir im Prinzip bereits bekannt, auch wenn noch
nicht in einige neuen Details.

Grüße aus Berlin
Gottfried Reeg

Kuno SchXlkle schrieb:
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
>
> 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
>
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
>
>   



Mehr Informationen über die Mailingliste Tustep-Liste