|
Joined: Dec 2002
Posts: 111
Vogon poet
|
OP
Vogon poet
Joined: Dec 2002
Posts: 111 |
Yeah. I'm trying to get /write to use the -w"Text" switch..so it searches the file for the line containing "Text" and perform the action on it..
It doesn't seem to be working..I'm using like this (for testing) right now:
/write -dw"This is a test" file.txt
The line "This is a test" is in the file, but it's not being deleted like it should be.
What I'm really trying to do is have it search for the line specified, and replace it with whatever. Can I do that with /write alone?
Thanks?
Experience The Void.. Are You Ready?
|
|
|
|
Joined: Dec 2002
Posts: 111
Vogon poet
|
OP
Vogon poet
Joined: Dec 2002
Posts: 111 |
Well, I just made a work-around using $read and $readn, but still, according to the help file I should be able to do what I want with /write alone..
So, am I just reading the help file wrong, or can you indeed do what I'm looking to? And if so..what am I doing wrong?
Thanks.
Experience The Void.. Are You Ready?
|
|
|
|
Joined: Dec 2002
Posts: 111
Vogon poet
|
OP
Vogon poet
Joined: Dec 2002
Posts: 111 |
Now there's a new problem.. I made this to work around the previous problem:
alias mp3r {
if ($msn) {
if (!$read(Mp3Rank.txt,nw,$+(*,$msn,*))) {
write -n Mp3Rank.txt $msn : 1
return $read(Mp3Rank.txt,w,$+(*,$msn,*))
}
write $+(-l,$readn) Mp3Rank.txt $msn : $calc($gettok($read(Mp3Rank.txt,n,$msn),2,58) + 1)
}
}
Now..that will write to the file in this format: Artist - Track : [number of times played] And it works..until it gets four different lines in the file. Then, instead of making a new line, it appends to the last one. Anyone know what causes that, or yet ANOTHER thing I can do to work around this?
Experience The Void.. Are You Ready?
|
|
|
|
Joined: Aug 2003
Posts: 1,831
Hoopy frood
|
Hoopy frood
Joined: Aug 2003
Posts: 1,831 |
Well, /write -dw"match text" works just fine, but must be an exact match or a wildcard match, ie if there is a trailing space the line won't match that example, but would match -dw"match text*", or you could use the -r switch for a regex search. Try /write -w"This is a test*" file.txt To overwrite, you omit the d /write -w"This is a test*" file.txt Replacement text Again the exact match comes into it.
|
|
|
|
Joined: Dec 2002
Posts: 111
Vogon poet
|
OP
Vogon poet
Joined: Dec 2002
Posts: 111 |
I was using that earlier.
write -w"$+($msn,*)" Mp3Rank.txt $msn : $calc($gettok($read(Mp3Rank.txt,n,$msn),2,58) + 1)
Doesn't work for me. Instead of replacing the string, it just appends to the end of it. $msn = current song playing, in the format "Artist - Song : [num]"
Experience The Void.. Are You Ready?
|
|
|
|
Joined: Aug 2003
Posts: 1,831
Hoopy frood
|
Hoopy frood
Joined: Aug 2003
Posts: 1,831 |
write -w"$+($msn,*)" <-is invalid, use $+(-w",$msn,*")
|
|
|
|
Joined: Dec 2002
Posts: 111
Vogon poet
|
OP
Vogon poet
Joined: Dec 2002
Posts: 111 |
Tried that after I saw what I posted, and it didn't work either.
Experience The Void.. Are You Ready?
|
|
|
|
Joined: Dec 2002
Posts: 111
Vogon poet
|
OP
Vogon poet
Joined: Dec 2002
Posts: 111 |
Nevermind, I got it.
The -n switch in the first /write was messing things up..
*Feels like a moron*
Experience The Void.. Are You Ready?
|
|
|
|
|