Help - Search - Members - Calendar
Full Version: VB .Net, Embedded text files, and assemblies
BleepingComputer.com > Software > Programming
   
aommaster
Hi guys!

I'm new to VB .Net (I can do the basic things like writing up functions, and simple events) and I decided to add a function to a piece of already-written code.

I have a text file in the root of the project which I have set as "embedded resource", which I believe is a step in the right direction hysterical.gif.

I'd like to input the whole text file's contents into a string.

My code is as follows:
CODE
        Dim startfileName As String = "Startofhtml.txt"
        Dim Asm As System.Reflection.[Assembly] = System.Reflection.[Assembly].GetExecutingAssembly()
        Dim strm As Stream = Asm.GetManifestResourceStream(Asm.GetName().Name.ToString() + "." + startfileName)
        Dim reader As StreamReader = New StreamReader(strm)
        Dim preview As String = reader.ReadToEnd()


My problem is with line 4 of the above code when it says that StreamReader is trying to read a null value. Now, I'm guessing that it's hit a problem with trying to use the resource, so I'm guessing I haven't done something right with respect to finding the namespace. However, I'm not sure.

Also, say I put this startofhtml.txy in folder 2, which is located in folder 1 which is located in the root. Do I define the startfilename as follows?:
CODE
Dim startfileName As String = "folder 1.folder 2.Startofhtml.txt"


Thanks again
Billy O'Neal
You can use My.Resources in Visual Basic smile.gif

Billy3
aommaster
Hi Billy!

Thanks for your reply. Is this another (programmatically correct) way of doing it?
CODE
        Dim res() As String = GetType(Form1).Assembly.GetManifestResourceNames()
        Dim stream As System.IO.Stream = GetType(Form1).Assembly.GetManifestResourceStream(res(0))
        Dim stream_reader As New StreamReader(stream)

        Dim preview As String = stream_reader.ReadToEnd()


Or is this not a correct technique to apply in such a case?
Billy O'Neal
You can.... it's just easier to use the My. namespace IMHO. So long as your code works I don't think there's much of a difference. Using My. just has Visual Basic take care of the nasty work for you.

Billy3

EDIT: Though I have not tested the above code.
aommaster
Hi Billy!

Yeah, the code that I initially wrote worked, although the res index number kept changing. I finally figured out how to you the My.Res properties and am using that now, since yes, they are a lot easier to take care of smile.gif

Thanks again Billy smile.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.