Text file duplicate line remover - scapegoat scapegoat

This code demonstrates the use of line input to read whole lines individually from a text file.

 [setupMainWindow] 

nomainwin
WindowWidth = 550
WindowHeight = 410
UpperLeftX=int((DisplayWidth-WindowWidth)/2)
UpperLeftY=int((DisplayHeight-WindowHeight)/2)

BackgroundColor$ = "buttonface"
ForegroundColor$ = "black"

statictext #Main.SourcefileLabel, "File to open:", 5, 15, 73, 20
statictext #Main.DestfileLabel, "Output file:", 5, 60, 89, 20
textbox #Main.SourcefilePath, 105, 12, 315, 25
textbox #Main.DestfilePath, 105, 57, 315, 25
button #Main.InFinder, "Browse", [BrowseInPath], UL, 440, 12, 80, 25
button #Main.OutFinder, "Browse", [BrowseOutPath], UL, 440, 58, 80, 25
statictext #Main.TexteditorLabel, "File preview:", 5, 122, 75, 20
texteditor #Main.textedit5, 105, 122, 415, 170
button #Main.Pv, "Preview file", [Preview], UL, 105, 317, 195, 25
button #Main.Go, "Remove duplicates", [Clean], UL, 330, 317, 190, 25

open "Duplicate Line Remover" for window as #Main
print #Main, "font ms_sans_serif 0 16"
print #Main, "trapclose [quit]"

originalentries=0
quantityofduplicates=0

wait

[BrowseInPath]
filedialog "Open text file", "*.txt", OriginalFilePath$
print #Main.SourcefilePath, OriginalFilePath$
wait

[BrowseOutPath]
filedialog "Open text file", "*.txt", outpath$
print #Main.DestfilePath, outpath$
wait

[Preview]
open OriginalFilePath$ for input as #rm
while eof(#rm)=0
line input #rm, txt$
print #Main.textedit5, txt$
wend
close #rm
wait

[Clean]
print #Main.DestfilePath, "!contents? outpath$";
print #Main.SourcefilePath, "!contents? OriginalFilePath$";
print #Main.textedit5, "Creating output file:"
print #Main.textedit5, outpath$
OPEN outpath$ for output as #writefile
print #Main.textedit5, " "
print #Main.textedit5, "processing"
close #writefile
open OriginalFilePath$ for input as #rm
while eof(#rm)=0
line input #rm, txt$
originalentries=originalentries+1
duplicate=0
OPEN outpath$ for input as #writefile
while eof(#writefile)=0
line input #writefile, compare$
if txt$=compare$ then duplicate=1 : quantityofduplicates=quantityofduplicates+1
wend
close #writefile
OPEN outpath$ for append as #writefile
write$ = txt$
if duplicate=0 then print #writefile, write$
if duplicate=0 then print #Main.textedit5, write$
close #writefile
wend
close #rm
print #Main.textedit5, " "
print #Main.textedit5, "Done. The original list contained "_
+str$(quantityofduplicates)+" duplicate lines,"
print #Main.textedit5, "out of "+str$(originalentries)+" originals. "_
+str$(originalentries-quantityofduplicates)_
+" lines were unique."
print #Main.textedit5, "The cleaned file has been saved at:"
print #Main.textedit5, outpath$
wait

[quit]
close #Main
end