View Single Post
  #18   Report Post  
Posted to microsoft.public.excel.programming
Robert Crandal[_3_] Robert Crandal[_3_] is offline
external usenet poster
 
Posts: 161
Default Fast way to truncate string

Okay, I have a different problem with the TruncateString()
function. I am getting an "Invalid procedure call or argument"
message. Not sure why. Here is the code:
(The error occurs in the main_test() subroutine)

'----------------------------------------------------
Sub main_test()

Dim sFile1 As String
Dim sFile2 As String
Dim n As Integer
Dim i As Integer
Dim j As Integer
Dim vData ' variant

gsBlankLine = Chr(13) & Chr(13) & Chr(10)
sFile1 = "C:\inp.txt"
sFile2 = "C:\out.txt"

'Group directly into chapters divided by "*" borders
vData = Split(ReadTextFile(sFile1), String(80, "*"))

i = FreeFile()

Open sFile2 For Output As #i

' Scan all narratives
For n = LBound(vData) To UBound(vData)

sClean = Split(vData(n), gsBlankLine)
For j = LBound(sClean) To UBound(sClean)

'
' ******** Error occurrs here *********
'
Print #i, TruncateString(sClean(j), "especially so")

Next ' j

Next ' n

Close #i

End Sub
'-------------------------
Public Function ReadTextFile$(Filename$)
' Reads large amounts of data from a text file in one single step.
Dim iNum%
On Error GoTo ErrHandler
iNum = FreeFile(): Open Filename For Input As #iNum
ReadTextFile = Space$(LOF(iNum))
ReadTextFile = Input(LOF(iNum), iNum)

ErrHandler:
Close #iNum: If Err Then Err.Raise Err.Number, , Err.Description
End Function 'ReadTextFile()
'----------------------------
Public Function TruncateString$(sText, sFind, Optional lStart& = 1)
TruncateString = Mid$(sText, lStart, InStr(sText, sFind) - lStart)
End Function