Wilson WindowWare Tech Support

WinBatch WinBatch+Compiler WebBatch
Home | Tech Database | Tech BBS | White Papers | Purchase


How to Remove a Line from a File using Binary Functions

Keywords: 	 remove a line binary

Question:

Due to some extensive problems with our proxy server, I need to remove a line from the company's prefs.js file for Netscape. This si what I have built so far, and it being a Monday, can't seem to figure out how to re-write the file without the offending line. Perhaps a little Martinesque light could be shed? (uh-oh, being reading too many Gary Whatcott posts again.. ;o) )
BoxOpen("Netscape Update","Searching")
AddExtender("wsrch34I.dll")
file="prefs.js"
hand=srchInit("C:\",file,"","",16)
while 1 
    a=srchNext(hand) 
    if a=="" then break 
    Buffer=BinaryAlloc(50000); more than enough for 7k file
    Line=BinaryIndexNc(Buffer,0,'user_pref("network.proxy.type", 1)',@FWDSCAN)
    ; gotta remove that line!!! and re-write the file...
    ; I hate mondays, my brain is not working today... 
endwhile
srchFree(hand) 
exit

Answer:

UNDEBUGGED !!
Buffer=BinaryAlloc(50000); more than enough for 7k file
outbuf=BinaryAlloc(50000)
userpref=BinaryIndexNc(Buffer,0,'user_pref("network.proxy.type", 1)',@FWDSCAN)

BinaryCopy(outbuf,0,Buffer,0,userpref)
cuthere=BinaryIndexNC(Buffer,userpref,@CRLF,@FWDSCAN)+2

a=BinaryEODGet(outbuf)
b=BinaryEODGet(Buffer)
BinaryCopy(outbuf,a,Buffer,cuthere,b-cuthere)

BinaryWrite(outbuf,"TEST.XXX")
BinaryFree(outbuf)
BinaryFree(buffer)

Article ID:   W12733
Filename:   Remove Line from File.txt