Solved

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

Posted on 2004-10-07
7
161 Views
Last Modified: 2012-05-05
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
Comment
Question by:croag
  • 4
  • 3
7 Comments
 
LVL 18

Expert Comment

by:mdougan
ID: 12252565
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
 
LVL 1

Author Comment

by:croag
ID: 12253727
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
 
LVL 18

Expert Comment

by:mdougan
ID: 12254066
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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 1

Author Comment

by:croag
ID: 12254343
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
 
LVL 18

Accepted Solution

by:
mdougan earned 255 total points
ID: 12254642
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
 
LVL 1

Author Comment

by:croag
ID: 12261505
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
 
LVL 18

Expert Comment

by:mdougan
ID: 12262406
sure, my pleasure :)  I've been away from EE for a while, nice to be back
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

1.0 - Introduction Converting Visual Basic 6.0 (VB6) to Visual Basic 2008+ (VB.NET). If ever there was a subject full of murkiness and bad decisions, it is this one!   The first problem seems to be that people considering this task of converting…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

28 Experts available now in Live!

Get 1:1 Help Now