Страница: 1 |
Страница: 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-сайт:
Профиль | | #1
Добавлено: 16.08.07 17:15
Ну перенаправляй консольный вывод в файл, а потом его обрабатывай, например, регекспами.
Номер ответа: 2
Автор ответа:
Aganemnam
ICQ: 269000203
Вопросов: 2
Ответов: 5
Web-сайт:
Профиль | | #2
Добавлено: 16.08.07 18:47
MrLink а что если сделать это простым *.bat -овским файлом (ведб он тоже исполнительный причем в среде командной строки).... пишеш какую нить команду "пробел" >1.txt ! он сохранит содержимое окна в файл 1.txt в той папке в которой находится указатель командной строки (по умолчанию Documents and Settings\ "имя текушего пользователя"\1.txt)
Пример:
потом просто открываеш файл и смотриш
е:\Documents and Settings\admin>1.txt
вот и все!!! Могу и кодом помочь если что .. .пищи на мыло : AGanemnam@mail.ru
Номер ответа: 3
Автор ответа:
Alexandr.R
Вопросов: 9
Ответов: 115
Web-сайт:
Профиль | | #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
Содержимое консоли в файл попадает следующим образом:
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-сайт:
Профиль | | #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-сайт:
Профиль | | #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 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-сайт:
Профиль | | #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