2013-07-23 4 views
0

Я пытаюсь создать систему исправления или обновление, если вы хотите для моей программы. Я хочу, чтобы он загружал список патчей, который находится в определенной форме в текстовом файле.Patching System in VB

Как это:

1 http://127.0.0.1:8080/patches/test1.rar 
2 http://127.0.0.1:8080/patches/test2.rar 
3 http://127.0.0.1:8080/patches/test3.rar 

Это вкладка между 1 и ссылки.

И тогда я хочу, чтобы он проверял, соответствует ли номер версии запуска или программы в данный момент патчу LAST в файле PatchList.txt. Последний патч - версия 3, а версия пусковой установки на данный момент равна 0.

Так что если он не соответствует, то он должен начать загрузку по одному патчей. Из патча 1 патч 3.

Я думал, что оператор цикла будет лучше для него, так что я пришел с этой идеей:

Сделать скачать PatchList.txt, а затем прочитать каждую строку по отдельности. После того, как он прочитает строку, он разделится на табуляцию, так что будут две переменные Version и PatchURL.

Затем он проверяет версию, чтобы убедиться, что она соответствует версии пусковой установки, а если нет, то она будет загружать файлы из PatchURL и применять ее, а затем установить версию пусковой установки в версию текущего патча, а затем проверить опять же, если номер версии и если он соответствует, то обновлений не будет, поэтому он закончит.

Я не знаю точно, как это сделать в коде. Я уже много лет пытаюсь загрузить файл txt и читать его по строкам, но я не смог. Я пробовал много разных вещей от StreamReader до StringReader и кучу других вещей.

Буду признателен за любую помощь. Это очень неприятно для меня.

ответ

0

Что вы подразумеваете под загрузкой?

Я бы попробовал решение, упомянутое здесь. How to read a specific line from a text file in VB

В противном случае я бы рекомендовал использовать XML для файла версии и просто десериализовать его.

+0

Загрузите его, как при загрузке строк. –

0

Если вы просто хотите, чтобы загрузить файл и читать его снова, это так же просто, как

My.Computer.Network.DownloadFile("http://your_url.txt", "local_tmp_path") 

Если вы не хотите, чтобы сохранить файл на диске, но читать его в памяти, вы можете использовать что-то вроде этого:

Dim httpRequest = DirectCast(WebRequest.Create("http://your_url.txt"), HttpWebRequest) 
Dim httpResponse = DirectCast(httpRequest.GetResponse(), HttpWebResponse) 

Dim line As String 
Using responseStream = httpResponse.GetResponseStream(), sr = New StreamReader(responseStream) 
    Do 
     line = sr.ReadLine() 
     If line IsNot Nothing Then 
      Dim s = line.Split(new String() {" "}, StringSplitOptions.RemoveEmptyEntries) 
      Dim version = s(0) 
      Dim path = s(1) 
      'Do something' 
     End If 
    Loop Until line Is Nothing 
End Using 

Если вы пытаетесь внедрить систему обновления для вашего программного обеспечения, лучше взглянуть на ClickOnce первых.