Results 1 to 2 of 2

Thread: Appending String Problem

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Oct 2000
    Posts
    72

    Question Appending String Problem

    Hey everyone, I was just wondering if someone could help me with this lame string problem. Basically I copied this code from an application I made in VBA Excel and am now just reusing it for a Standard VB executable.

    Ok here is the Function, it basically just returns all the code from a web page that I ask it to get. sReadBuffer basically reads in the page chunk by chunk and then it get appended to another string sBuffer.

    Code:
    Public Function grabWebpage(passedURL As String) As String
    
        Dim newlinePosition     As Integer
        Dim hOpen               As Long
        Dim hOpenUrl            As Long
        Dim sURL                As String
        Dim LineBuffer          As String
        Dim bDoLoop             As Boolean
        Dim bRet                As Boolean
        Dim sReadBuffer         As String * 2048
        Dim lNumberOfBytesRead  As Long
        Dim sBuffer             As String
    
        LineBuffer = ""
        testLineCounter = 0
        
      
     '   If (testURL(passedURL) = False) Then
     '       MsgBox "Unable to connect to Webpage: " + passedURL
     '       grabWebpage = ""
     '       Exit Function
     '   End If
        
        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
        hOpenUrl = InternetOpenUrl(hOpen, passedURL, vbNullString, 0, INTERNET_FLAG_NO_COOKIES, 0)
    
        bDoLoop = True
    '    Application.ScreenUpdating = True
        While (bDoLoop)
            sReadBuffer = vbNullString
            bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
            
            sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
            If Not CBool(lNumberOfBytesRead) Then
                bDoLoop = False
            End If
        Wend
          
        grabWebpage = sBuffer
        
        Dim handleCloseReturn As Boolean
        If (hOpenUrl <> 0) Then
            handleCloseReturn = InternetCloseHandle(hOpenUrl)
        End If
        If (hOpen <> 0) Then
            handleCloseReturn = InternetCloseHandle(hOpen)
        End If
        
    End Function

    Oh yea, and in case you didn't know, the $Left statement is used to trim the sReadBuffer so that only what was read in gets appended to the sBuffer... taking out the blank left over space on the end of the string.

    I watched this thing step through for a while and my InternetReadFile function is working perfectly... stepping through the page as it should.... but for some reason the string sBuffer wont grow in size from the inital copy of sReadBuffer. (basically it only copies the string on the first time thru).

    Thanx in advance to everyone!

  2. #2

    Thread Starter
    Lively Member
    Join Date
    Oct 2000
    Posts
    72
    Ah man... ok nevermind. Its been a while since I programmed in VB. I just remembered that the WATCH buffer is only a certain amount of characters long... so it only showed that first line that was copied. I watched the length of the string this time and noticed that it was going up as it should. =)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width