Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Из консоли в текстовый файл. Добавлено: 16.08.07 16:25  

Автор вопроса:  MrLink
Есть консольная программа, которая обращается к определенной странице в интернете и выводит ее содержимое в консоль.
Содержимое страницы имеет следующий вид:
<?xml version="1.0"?><songs><song id="248284" author="Author" title="Name" duration="0:00" /></songs>
Подскажите пожалуйста как можно перенести(сохранить) содержимое консоли в текстовый файл и можно ли придать этим данным вид :
id Author - Name time
Заранее спасибо.

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 16.08.07 17:15
Ну перенаправляй консольный вывод в файл, а потом его обрабатывай, например, регекспами.

Ответить

Номер ответа: 2
Автор ответа:
 Aganemnam



ICQ: 269000203 

Вопросов: 2
Ответов: 5
 Web-сайт: None
 Профиль | | #2
Добавлено: 16.08.07 18:47
MrLink а что если сделать это простым *.bat -овским файлом (ведб он тоже исполнительный причем в среде командной строки).... пишеш какую нить команду "пробел" >1.txt ! он сохранит содержимое окна в файл 1.txt в той папке в которой находится указатель командной строки (по умолчанию Documents and Settings\ "имя текушего пользователя"\1.txt)

Пример:
е:\Documents and Settings\admin>dir >1.txt


потом просто открываеш файл и смотриш

е:\Documents and Settings\admin>1.txt


вот и все!!! Могу и кодом помочь если что .. .пищи на мыло : AGanemnam@mail.ru

Ответить

Номер ответа: 3
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #3
Добавлено: 16.08.07 19:41
Значиться делаем так что бы при запуске консольная программа сразу же выдавала нужное содержимое, далее так запускаем это програмулину из другого приложения

 Dim oProcess As New Process
        Dim sReturnXml As String
        oProcess.StartInfo.FileName = sProcessPath 'путь к exe
        oProcess.StartInfo.UseShellExecute = False
        oProcess.StartInfo.RedirectStandardOutput = True
        oProcess.StartInfo.CreateNoWindow = True
        oProcess.StartInfo.Arguments = sProcessArguments 'передаем нужные параметры если надо
        oProcess.StartInfo.RedirectStandardInput = True
        oProcess.Start()
        Dim oStreamReader As StreamReader = New StreamReader(oProcess.StandardOutput.BaseStream, Encoding.Default)
        sReturnXml = oStreamReader.ReadLine
        oProcess.WaitForExit()
        oProcess.Close()

Ответить

Номер ответа: 4
Автор ответа:
 MrLink



Вопросов: 3
Ответов: 14
 Профиль | | #4 Добавлено: 17.08.07 00:00
Содержимое консоли в файл попадает следующим образом:
Dim stream As String
stream = myStreamReader.ReadToEnd
Dim FS As New FileStream(String.Format("{0}:\File.txt", sDisk), FileMode.OpenOrCreate)
        Dim SW As New StreamWriter(FS, System.Text.Encoding.Default)
        SW.WriteLine(stream)
        SW.Close()
        FS.Close()

Каким образом теперь можно задать формат:
id Author - Name time ?
а потом его обрабатывай, например, регекспами.
можно поподробнее?

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 17.08.07 03:17
Если ты не знаешь, что такое регекспы, тебе стоит прочитать про них статью или книгу.

Ответить

Номер ответа: 6
Автор ответа:
 MrLink



Вопросов: 3
Ответов: 14
 Профиль | | #6 Добавлено: 17.08.07 19:12
Помогите пожалуйста составить Regex
из
<?xml version="1.0"?><songs><song id="248284" author="Author" title="Name" duration="0:00" /></songs>
в
id Author - Name time

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 17.08.07 21:15
<song\s+id=";(\d+)"\s+author=";([^"]+)"\s+title=";([^"]+)"\s+duration=";([\d:]+)"

$1 $2 - $3 $4

Ответить

Номер ответа: 8
Автор ответа:
 MrLink



Вопросов: 3
Ответов: 14
 Профиль | | #8 Добавлено: 20.08.07 14:55
Прочитал статью про RegEx http://www.vbnet.ru/articles/showarticle.aspx?id=93
думал что понятно, но на практике оказалось не так просто. У меня получился следующий код:
Dim regexp As New Regex("<song\s+id=";(\d+)"\s+author=";([^"]+)"\s+title=";([^"]+)"\s+duration=";([\d:]+)";)
        Dim html As String
        Dim i As Integer
        Dim m As MatchCollection
        html = stream
        m = regexp.Matches(html)
        For i = 0 To m.Count - 1
            MsgBox(m.Item(i).Value)
            Console.WriteLine(m.Item(i).Value)
        Next

Я использовал метод ПОИСК. Но VS пишет ошибку.
Может надо другой метод или код использовать?

Ответить

Номер ответа: 9
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #9
Добавлено: 20.08.07 15:45
А зачем вы полезли в RegEx, неужели нельзя использовать System.Xml.XmlDocument.

Ответить

Номер ответа: 10
Автор ответа:
 MrLink



Вопросов: 3
Ответов: 14
 Профиль | | #10 Добавлено: 20.08.07 15:58
А как его(System.Xml.XmlDocument) использовать?

Ответить

Номер ответа: 11
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #11 Добавлено: 20.08.07 17:09
http://www.google.ru/search?q=XmlDocument

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам