I'm not going toanswer your direct question (replace first occurrence)
because that is a subset of the whole question, which I think is more
interesting :-)
How would I remove the duplicates as described below ?
(I have assumed that in each field the tag is separated from
the content by a space, so used 'word' to extract the tag)
[I tested this in the msg box]
put "A aaa" & tab & "B bbb" & tab & "B bb2" & "C ccc" &cr into tData
put "A a2a" & tab & "B b2b" & tab & "B 2b2" & "C ccc" &tab& "C cc2"
&cr after tData
set the itemDel to tab
repeat for each line L in tData
put empty into lastTag
put empty into tLine
repeat for each item itm in L
if word 1 of itm <> lastTag then
put itm & tab after tLine
put word 1 of itm into lastTag
end if
end repeat
delete the last char of tLine -- trailing tab character
put tLine & cr afer tOutput
end repeat
put tOutput
-- Alex.
Peter Alcibiades wrote:
How would you do the following in Rev?
We have a file consisting of records with tab separated fields. Each field
has a tag followed by contents. Some tags occur more than once in some
records which thus have varying numbers of fields. Duplicates are always
consecutive. I want to eliminate all the occurrences of any tag except
the first one. The duplicate tags can occur any place in the record, but
if they are duplicated, will always be consecutive.
Doing this in SED is not particularly difficult, but it does require going
out to shell, and so its not cross platform. You just change the tag
using the local scope to something else. SED then only changes the first
occurrence in a record. Then you use the global scope and change all of
them. Then you go back and change the first one back to what it was. In
fact, if using SED like this, the only thing you need it for is to do the
local, first tag, change - once this is done, the rest can be done in Rev.
But it would be nice to stay in Rev for the whole thing.
Is there a way in Rev to pick the first occurence of a string in a record,
change it and not subsequent occurences, and then move on to the next
record and do the same thing?
That is, mimic the 'local' editing mode of SED?
Bet you all thought them dinosaurs like SED had to be extinct by now! But
no, they are still trampling around in the swamps of text manipulation....
For the sake of clarity, a record might look like this:
A aa TAB B bb TAB B bb TAB B bb TAB C cc TAB D dd TAB D dd
and what is wanted is to change the first occurrence of B to, for
example !1, and the first occurence of D to, for example !2, or anyway
something that will not occur by chance, to allow the subsequent editing
to work globally on the file. This is what SED does in local mode.
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution