Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Doesn't the Split() function return an array?
Index -> Programming, Visual Basic and Other Basics -> Visual Basic Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
GlobeTrotter




PostPosted: Sat Mar 25, 2006 4:24 pm   Post subject: Doesn't the Split() function return an array?

Okay, so I have this small piece of code and I just don't understand the problem.

I have a WriteFile procedure that takes in a string array and writes it to a file. I am calling a split of a string so that it can go to the writefile:

code:

Call WriteFile(Split(strTempStringOutput, vbCrLf), strTempFileName)



I'm getting the error, however, "Type mismatch: Array of user-defined type expected"

I don't get it. The Split() fcn should return an array.
If it is of any help, here is the WriteFile procedure.

code:

Public Sub WriteFile(LineArray() As String, strFileName As String)
    Dim FileNum As Integer
    Dim lCount As Long
   
    FileNum = FreeFile
    Open strFileName For Output As FileNum
   
    If Not isStringArrayEmpty(LineArray) Then
        For lCount = 0 To UBound(LineArray)
            Print #FileNum, LineArray(lCount)
        Next lCount
    End If
    Close #FileNum
End Sub
Sponsor
Sponsor
Sponsor
sponsor
Brightguy




PostPosted: Sun Mar 26, 2006 2:01 am   Post subject: Re: Doesn't the Split() function return an array?

Hmmm... I thought VB would automatically recognize that Split() returns a string array, but I guess it defaults to using the Variant type.

So either declare LineArray as a Variant, or specifically declare a string array, set it equal to what Split() returns, and pass that.
GlobeTrotter




PostPosted: Sun Mar 26, 2006 2:30 pm   Post subject: (No subject)

Alright, I tried specifically declaring a string array, passing the split function to that, but it still isn't working. I'd like to avoid variants if possible.

code:

Public Function ConcatonateStringIntoArray(strInput As String) As String()
    Dim strArray() As String
    strArray = Split(strInput, vbCrLf)
    ConcatonateArrayIntoString = strArray
End Function


It says, function call on left side must return variant or object...
Brightguy




PostPosted: Sun Mar 26, 2006 10:14 pm   Post subject: Re: Doesn't the Split() function return an array?

There's no need to create a new function, although that seems to work in VB6. (You can't return arrays in VB5 unless it's a Variant containing an array.)

The "Function call on left side of assignment must return Variant or Object" could occur if you have two functions defined - "ConcatonateArrayIntoString" and "ConcatonateStringIntoArray". Otherwise you should be getting a "Variable not defined" error - you are using Option Explicit, aren't you?
GlobeTrotter




PostPosted: Sun Mar 26, 2006 10:30 pm   Post subject: (No subject)

Wow, I feel like an idiot. I do have two functions, one string to arrya and vice versa for the other. Not sure why I used the frong function name to return the result. Works great now, thanks.
Display posts from previous:   
   Index -> Programming, Visual Basic and Other Basics -> Visual Basic Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 5 Posts ]
Jump to:   


Style:  
Search: