2013-06-25 2 views
0

인터넷에있는 INI 파일을 컴퓨터에 다운로드하지 않고 어떻게 메모리에 저장할 수 있는지 알고 싶습니다. 이 작업을 수행 할 필요가 Visual Basic에서 2010 년 나는 모든 내용을 읽을 모든 부분에서 모든 값을 얻을 수 있지만, 파일을 다운로드하지 않고, 나는이 클래스를 시도했습니다 필요VB 2010 - 다운로드하지 않고 인터넷에있는 INI 파일을 읽는 방법

:

Question: Read and write in INI file

그러나 인터넷에있는 파일이 아닌 컴퓨터에 저장된 파일에서만 작동합니다. INI 파일의 모든 내용을 가져 와서 tring,하지만 클래스는 그것을 전혀 읽지 않는다, 누군가 나를 도울 수 있냐? 고맙습니다.

+1

당신이 "그것을 다운로드하지 않고"무엇을 ​​의미합니까? 인터넷에있는 파일에 액세스하려면 * 다운로드해야합니다. 저장하지 않으려면 메모리에 보관할 수 있지만 다운로드는 계속됩니다. – Turch

+0

네, 맞습니다. 컴퓨터에 파일을 저장하지 않고 메모리에 보관할 수 있지만 "파일"로 저장할 수 없습니다. 더 명확하게 질문을 편집했습니다. – Minion

+1

해당 클래스는 물리적 파일이 필요한 GetPrivateProfileString API, 마침표. 다운로드, 저장, 읽기 및 삭제를 원하지 않으면 대체 INI 파일 파서를 찾아 쓰거나 쓸 필요가 있습니다 –

답변

1

가능한 경우 가장 쉬운 방법은 임시 위치에 파일을 다운로드하는 것입니다. 임시 파일 이름을 얻으려면 CreateTempFile을 사용하십시오. 당신은 모든 파일을 저장할 수없는 경우

, 다음 (안된)와 메모리에 다운로드 할 수 있습니다 :

Dim request As HttpWebRequest 
Dim response As HttpWebResponse 

request = Net.HttpWebRequest.Create(url) ' url of the file 
request.Method = "GET" 
response = request.GetResponse() 


Using reader As StreamReader = New StreamReader(response.GetResponseStream(), Encoding.Default) 
    Dim fileStr As String = reader.ReadToEnd() ' fileStr contains the contents of the file 
End Using 
+0

고맙습니다! 나는 INI를 파싱하기 위해 클래스를 변경했지만,이 코드는 메모리에 다운로드하기에 완벽하게 작동했습니다. – Minion

1

당신이 할 수있는 가장 좋은 방법은 파일을 웹 페이지로 읽는 것입니다 (기본적으로 이것은 무엇인가요). 그리고 나서 여러분이 얻은 모든 정보를 파싱하는 것입니다. 나는 여러 번 아래의 코드를 사용하고 꽤 잘 작동했다 :

Public Class Form1 
    Friend WithEvents webBrower0 As New WebBrowser 
    Friend WithEvents tabs As New TabControl 
    Friend WithEvents tabPage0 As New TabPage 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     startBrowser() 
    End Sub 
    Public Sub startBrowser() 

     Dim url As String = "http://..." 

     tabs.Controls.Add(tabPage0) 
     tabPage0.Controls.Add(webBrower0) 
     AddHandler webBrower0.Navigating, AddressOf WebBrowser_Navigating 
     AddHandler webBrower0.DocumentCompleted, AddressOf WebBrowser_DocumentCompleted 
     tabPage0.Refresh() 

     webBrower0.Navigate(url) 

    End Sub 
    Private Sub WebBrowser_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) 
    End Sub 
    Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) 
     Dim source_string As String = webBrower0.DocumentText 'content of the file 
    End Sub 
End Class 

다 읽은 후, 문자열 source_string이 파일 내용으로 채워집니다. 그것은 html 형식을 따르지만 원하는 정보를 추출하는 데 어떤 문제도 발견해서는 안됩니다.

관련 문제