Avatar billede 2c Nybegynder
21. april 2005 - 21:08 Der er 9 kommentarer og
1 løsning

StreamReader problem (tror jeg)

Hej jeg har følgende VB kode som virker:

Dim sr As System.IO.StreamReader = System.IO.File.OpenText(OpenHtmlFileDialog.FileName)
                Dim html As String = sr.ReadToEnd()

Jeg har prøvet at oversætte det til C#:
System.IO.StreamReader sr =  System.IO.File.OpenText(textBoxURL.Text);
                HTMLall = sr.ReadToEnd();

Det jeg vil, er at åbne en html side, så parameteren i OpenText, kan fx være http://eksperten.dk. Det virker fint i VB koden, men i C# koden får jeg følgende exception:
******************************
System.ArgumentException: URI-formater understøttes ikke.
  at System.IO.Path.GetFullPathInternal(String path)
  at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy)
  at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
  at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
  at System.IO.StreamReader..ctor(String path)
  at System.IO.File.OpenText(String path)
  at TestCSharp.Form1.buttonSearch_Click(Object sender, EventArgs e) in c:\skole\speciale\kode\milhtmlparser\milhtml\testcsharp\form1.cs:line 147
************************************
Linie 147 er:
System.IO.StreamReader sr =  System.IO.File.OpenText(textBoxURL.Text);

Nogen der ved hvad problemet er ?
Avatar billede arne_v Ekspert
21. april 2005 - 21:11 #1
Hvordan er OpenHtmlFileDialog.FileName blevet oversat til textBoxURL.Text ?
Avatar billede burningice Nybegynder
21. april 2005 - 21:16 #2
ikke desto mindre, så beskriver fejlmeddelelsen megt godt hvad der er galt. Så til dit spørgsmål til hvad der er galt er svaret såre simpelt.

URI-formater understøttes ikke

Løsing på problemet? Brug en WebRequest istedet for File.Open
Avatar billede arne_v Ekspert
21. april 2005 - 21:19 #3
Jo - men han siger jo at VB.NET koden virker !
Avatar billede burningice Nybegynder
21. april 2005 - 21:35 #4
jo, men det må have været med en lokal fil den har virket, så VB.Net vil lave samme fejl hvis man prøver at åbne en fil over internettet med File-klassen.
Avatar billede arne_v Ekspert
21. april 2005 - 21:37 #5
Jo - men jeg undrer mig - OpenHtmlFileDialog.FileName og textBoxURL.Text
lyder ikke engang som noget af samme type
Avatar billede 2c Nybegynder
21. april 2005 - 21:41 #6
For at præcisere.
Jeg downloadede et eksempel fra http://www.codeproject.com/ som passede til det jeg skulle bruge. Koden der var desvære i VB, og jeg skulle bruge det i C#. I VB koden var der en OpenFileDialog, som returnerede en streng. I mit eget C# program brugte jeg en textbox istedet. Da jeg kørte VB eksemplet satte jeg en urll ind i OpenFileDialog boxen, og det virkede fint.

Jeg er ligeglad med om det bliver løst på samme måde. Jeg vil bare gerne have html siden ned i en streng. Så hvis nogen har et eksempel der returnere en html side som string vil jeg blive glad.
Avatar billede arne_v Ekspert
21. april 2005 - 21:43 #7
Det har cf faktisk allerede forklaret.

WebRequest wr = WebRequest.Create(url);
string html = new StreamReader(wr.GetResponse().GetResponseStream()).ReadToEnd();
Avatar billede 2c Nybegynder
21. april 2005 - 22:02 #8
Jeg takker for hjælpen. Nu virker det.
Smid et svar begge.
Avatar billede arne_v Ekspert
21. april 2005 - 22:18 #9
det må vist være cf's - han fokuserede på løsningen - mens jeg mere bare undrede mig
Avatar billede burningice Nybegynder
22. april 2005 - 00:30 #10
:) det er også sundt at undre sig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester