?
Solved

How do I mimic a System.IO.Stream, if I have a String, instead of a string stored in a file?

Posted on 2007-03-28
4
Medium Priority
?
198 Views
Last Modified: 2013-12-17
I have a class that is final.  I cannot change it.  The problem is that the class has a constructor of it's VB, but I don't care if the answer is C# based...it's a library.

Sub New ThisClass(ByVal reader As XMLTextReader)

Here's the issue I need to solve.  I do not have the information I want to pass in to this class stored in a file.  I have it stored in a string (ie.  like a file that's already read in).  Is there a way to mimic a System.IO.StreamReader, using an in memory string, instead of a file (which is just pointing to a string anyway?

Since I am desperate for an answer (deadlines. Ack!), I am offering 500 pts to the expert who can help me 'fake' a string by wrapping it into some kind of IO Stream, so that I can instantiate the XMLTextReader class as follows:

Dim sinmemoryfile As String

Dim ostream [some kind of IOStream in memory] = New [some kind of IO.Stream in memory](sinmemoryfile)
Dim oxmlreader As XmlTextReader = New XmlTextReader(ostream (as System.IO.Stream))

Do you understand the dilemma I have?  I don't need to read the file in!  It's already read (and is fact, never in a file).  I do not want to have to save this string to a file and then pass in the file--that's incredibly inefficent and then I'd have to keep track of a ton of files (never mind naming conventions, etc.)

Is there some way to create an System.IO.Stream that uses a string?

Thanks in advance for your expertise!
0
Comment
Question by:louisiana_blues
  • 2
4 Comments
 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 500 total points
ID: 18812554
what about a memory stream?
0
 
LVL 11

Assisted Solution

by:Babycorn-Starfish
Babycorn-Starfish earned 500 total points
ID: 18812565
0
 
LVL 25

Accepted Solution

by:
DBAduck - Ben Miller earned 1500 total points
ID: 18812568
There is a StringReader class in System.IO that takes a String.
Then you can use the XmlTextReader to get at it like this:

Dim sinmemoryfile as String
Dim ostream as StringReader = New StringReader(sinmemoryfile)
Dim oxmlreader as XmlTextReader = CType(XmlTextReader.Create(ostream), XmlTextReader)

Then use the XmlTextReader. (or in any case you can use the XmlReader class which is what XmlTextReader returns)

Ben.
0
 

Author Comment

by:louisiana_blues
ID: 18812600
Hey dbaduck:

Thanks dude.  I will give that a try.  If it works, you get the points.  Thanks to the others.   I was looking for something including code, not a link that I would have read to infer an answer...

I will share the points, but dbaduck will get the most if his/her solution works.  Hope that's okay!

Okay, I checked it and it works.  You are indeed experts!  You all jumped on that question like it was a happy pill. ;-)
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

Question has a verified solution.

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

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…
Suggested Courses

831 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