©
serviceprofessionalgmbh
Allows overlapping copying of rows. The target could be inside of the copy block.
/* REXX * EDIT MACRO *************************************************/
/* */
/* Macroname.: $XCOPY */
/* Zweck.....: Erlaubt das Kopieren mit ueberlappenden Bereichen. */
/* */
/* Der Kopierbereich wird ueber das Zeilenkommando */
/* $, $n oder $$ definiert. Das Ziel des Kopiervorgangs */
/* wird durch das Label .VOR oder .NACH festgelegt. */
/* Fehlt die Zielangabe, wird als Ziel das Dateiende */
/* (hinter die letzte Datenzeile) angenommem. */
/* */
address isredit
"macro NOPROCESS"
"process range $"
if rc > 0 then do
zedsmsg="Sorry..."
zedlmsg="Kopierbereich mit Zeilenbefehl $, $n oder $$ markieren"
address ispexec "setmsg msg(isrz000)"
exit
end
"(fline) = linenum .zfrange"
"(lline) = linenum .zlrange"
richtung = "AFTER"
"(dline) = linenum .nach"
if dline = 0 then do
"(dline) = linenum .vor"
if dline = 0 then do
"dline = linenum .zlast"
end
else do
richtung = "BEFORE"
end
end
"label" dline "= ' ' 0"
macrocmd="LINE_"richtung
do cnt=fline to lline
"(linedata) = line" cnt
temp.cnt = linedata
end
do cnt=lline to fline by -1
data=temp.cnt
interpret '"'macrocmd dline "= '&data'"""
end
startmsg=left('Beginn neuer Bereich ',70,'*')
endemsg=left('Ende neuer Bereich ',70,'*')
interpret '"'macrocmd dline "= msgline '&startmsg'"""
dline=dline+lline-fline+1
interpret '"'macrocmd dline "= msgline '&endemsg'"""
exit 0
back to Edit Macros