[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 169
  • Last Modified:

Misc Compile errors. That I can't figure out!!

What is this about! is this mutiple errors? Just one big one with many dependecies? Please please help.

___________________________
Service cannot be started. System.InvalidCastException: Cast from type 'StreamWriter' to type 'String' is not valid.
   at Microsoft.VisualBasic.CompilerServices.StringType.FromObject(Object Value)
     
   at PxpParser.PxpParser.WriteToFile(String pr_String) in C:\Thomas Huff\Visual Studio Projects\PxpParser\PxpParser.vb:line 209
 
   at PxpParser.PxpParser.StartWatch() in C:\Thomas Huff\Visual Studio Projects\PxpParser\PxpParser.vb:line 140
   
   at PxpParser.PxpParser.OnStart(String[] args) in C:\Thomas Huff\Visual Studio Projects\PxpParser\PxpParser.vb:line 363
   at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

------------------

1 - Line 209 =
logsw = CObj(logobject.OpenText(CObj(logobject.AppendText(logfile))))

2 - Line 140 =
        WriteToFile("Setting Folder to watch:" & watcher.Path() & "Done" & " @ " & Date.UtcNow & vbNewLine)

3 - Line 363 =
 StartWatch()


Please Assist. I can't solve! Thanks!
0
croag
Asked:
croag
  • 4
  • 3
1 Solution
 
mdouganCommented:
Hi croag,
> WriteToFile
The writeToFile function does not take a string as a parameter, rather, it takes a StreamWriter object.  


If you just want to write a string to a file, you'd do something like this:
        Dim fWriter As StreamWriter

            fWriter = System.IO.File.CreateText("C:\Code\text.txt")
            fWriter.Write("Hello World")
            fWriter.Close()

Cheers!
0
 
croagIdeator Author Commented:
THANK YOU for your quick response. So here is the WriteToFile Fuction that I"m using and the arguments aren't throwing a syntax error. What should I do different withing the code.....Where it writes to the actual file below, Right now, It says logsw.WriteLine(pr_String) cause thats what the argument that the fuction calls from, do you think If I can change the argument type to streamwriter passed to the function and then change another couple of things in this funciton..it will work? Please let me know. Thank you.


-----------------------------------------------------------------------------------------

    Public Function WriteToFile(ByVal pr_String As String)
        Dim logsw As StreamWriter
        Dim logfile As String = logs & "\PxpParser.log"
        Dim logobject As File

        If logobject.Exists(logfile) Then
            logsw = CObj(logobject.OpenText(CObj(logobject.AppendText(logfile))))
        ElseIf Not logobject.Exists(logfile) Then
            logsw = (CObj(logobject.CreateText(CObj(logobject.OpenText(CObj(logobject.AppendText(logfile)))))))
        End If
   
     'Write to the file
        logsw.WriteLine(pr_String)

       
        'Set the Value of pr_String back to NULL - Just to be safe
                pr_String = ""

       
        'Close the Stream Writer
                logsw.Close()

    End Function
-------------------------------------------------------------------------------------------------
0
 
mdouganCommented:
Ohhhhh..... that could be the problem... there is a .NET function named WriteToFile, and it's very likely that your compile error is checking your function call against the .NET WriteToFile function and not yours... a quick test would be to rename your MyWriteToFile and change all the calls to call that instead and see if you still get the compile error.

Second of all, it's not clear to me why you have all the cast to CObj statements in your code... I think you could get rid of those completely... secondly, on the Else condition for this if statement:

If logobject.Exists(logfile)

You don't have to say   Elseif.... because if the object.Exists is false, then by definition, it doesn't exist.  

Hope that helps!
0
Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

 
croagIdeator Author Commented:
Oh man...Thank you..I'm going to try that one right now!

hmmmmmmmokay darn...same errors. Time to try taking out the Obj casting



NOpe...it loooks like i HAVE to use object casting..is it bad to cast so much like that?



Please hlep me more!!!
0
 
mdouganCommented:
OK, it always helps if I actually compile and test the solution first ;)  see changes below  

 Public Function WriteToFile(ByVal pr_String As String)
        Dim logsw As StreamWriter
        Dim logfile As String = "C:\PxpParser.log"
        Dim fi As New FileInfo(logfile)
        Dim logobject As File

        If logobject.Exists(logfile) Then
            logsw = fi.AppendText()
        Else
            logsw = System.IO.File.CreateText(logfile)
        End If

        'Write to the file
        logsw.WriteLine(pr_String)

        'Set the Value of pr_String back to NULL - Just to be safe
        'pr_String = ""   
        'This is not necessary, as you're passing pr_String by value so, it's going to disappear at the end of the procedure

        'Flush the buffer
        logsw.Flush()
        'Close the Stream Writer
        logsw.Close()

    End Function
0
 
croagIdeator Author Commented:
Dude....mdougan, You are the man!!!!!!!!! Thank you sooo much man. Thank you!!!!! that was it!
You are THE man!!!!!!!!!!!!!!!!! Thank you ..I may have a more questions for yoU!..Thank you!!!!. YES!..Thank you!..I am sooooo happy
0
 
mdouganCommented:
sure, my pleasure :)  I've been away from EE for a while, nice to be back
0

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now