View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
GS[_2_] GS[_2_] is offline
external usenet poster
 
Posts: 3,514
Default Extract paragraphs from text file

This revised code does what you example...

Option Explicit

Const sProfaneWords$ = "fuk,****"
Const sFilename$ = ""


Sub CleanupProfanity()
Dim vData, vWord, n&

'This assumes the full path and filename is held in 'sFilename'
vData = Split(ReadTextFile(sFilename), vbCrLf)

'Group into paragraphs
For n = LBound(vData) To UBound(vData)
'Create paragraph delimiter
If InStr(vData(n), "*") 0 Then vData(n) = "<"
Next 'n
'Rebuild lines into paragraphs
vData = Split(Join(vData, vbCrLf), "<")

'Filter paragraphs with profane words
For Each vWord In Split(sProfaneWords, ",")
For n = LBound(vData) To UBound(vData)
If (InStr(vData(n), vWord) 0) Then
vData(n) = "~": Exit For
End If
Next 'n
Next 'vWord

'Rebuild paragraphs back to lines
vData = Split(Join(vData, vbCrLf), vbCrLf)

'Filter out any blank lines
For n = UBound(vData) To LBound(vData) Step -1
If Len(vData(n)) = 0 Then vData(n) = "~"
Next 'n
vData = Filter(vData, "~", False)

WriteTextFile Join(vData, vbCrLf), sFilename
End Sub

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion