2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
1 | |
Считывание пути из файла07.02.2014, 17:49. Показов 2412. Ответов 34
Метки нет (Все метки)
Помогите пожалуйста написать команду на языке perl
Необходимо создать команду, чтобы из одного определенного файла, например, rel.ism в блоке name, строка содержащая слово mac считывал путь из этого же файла, но из другого блока dir. Пример: Блок name <row>F_Mac</td><td>{D2646DF0-E891-4645-9443-1ABE1247DAA8}</td><td>CC_MAC</td><td> Блок dir <row><td>CC_Mac</td><td><ynamicRoot> Тут начинается путь \cadr\mac</td><td>3 Итог: \cadr\mac
0
|
07.02.2014, 17:49 | |
Ответы с готовыми решениями:
34
Считывание расположения (пути) файла с клавиатуры Считывание и запись по пути с реестра Заменить считывание с клавиатуры на считывание из файла Нужно произвести считывание пути к файлу с клавиатуры. Причём сделать это в конструкторе. Всё остальное корректно работает. |
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
17.02.2014, 10:01 [ТС] | 21 |
0
|
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
17.02.2014, 11:42 [ТС] | 23 |
сначала нужна команда открытия файла 1.ism
Потом Поиск <table name="Directory">, отсюда поиск строк содержащие SVDIRMAC. Здесь указываются название папки где находится SVDIRMAC, например, строка <row><td>BSM</td><td>SVDIRMAC</td><td>Bsm</td><td/><td>0</td><td/></row> Отсюда мы берем название папки BSM Потом поиск прекращается Далее поиск Блока ISDynamicFile. Тут находим уже название самой папки BSM и отсюда уже необходимо вывести путь к этой папке, например, <row><td>Bsm_Mac</td><td><ynamicLinkRoot>\bsm\mac</td><td>1</td><td>*.*</td><td/><td>0</td></row> Итог должен быть: Список путей к папке: В примере \bsm\mac
0
|
17.02.2014, 12:52 | 24 | |||||
Сообщение было отмечено Olich666 как решение
Решение
1
|
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
17.02.2014, 13:50 [ТС] | 25 |
В итоге файл final.txt пустой...
0
|
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
17.02.2014, 14:16 [ТС] | 27 |
А что у тебя получается в итоговом файле?
0
|
17.02.2014, 14:39 | 28 |
\reptcb\mac
\report\obj \ifrs\mac \cadr\obj \loans\TemplsWord \loans\obj \invh\obj \ReptReg\Obj \invh\mac\common \mbr\mac \ps\vrslfile \cb\templs \loans\mac \loans\TemplsExcel \Cb\templs \rm\obj \rm\mac \cb\mac_ms \reptreg\mac \bsm\mac \cb\obj \report\mac \invh\obj\lvm \cadr\mac \ifrs\obj \invh\obj\pchs \loans\TemplsDepoExcel \mbr\obj \cb\mac \bsm\obj \invh\mac \ps\mac \ps\obj \loans\TemplsDepo
0
|
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
17.02.2014, 16:34 [ТС] | 29 |
Все. Ура. Получилось. Спасибо большущее!!!
1
|
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
17.02.2014, 16:51 [ТС] | 31 |
А подскажи пожалуйста последний момент.
Как можно просто считать название проекта, только из блока Directory, находя SVDIRMAC после </td><td> название проекта до символа до следующего </td> Например: тот же самый файл <row><td>BSM</td><td>SVDIRMAC</td><td>Bsm<td/><td>0</td><td/></row> Отсюда только название справа: Bsm
0
|
17.02.2014, 16:56 | 32 | |||||
Регуляркой, т.е. будет выглядеть примерно так
1
|
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
|
|
18.02.2014, 10:20 [ТС] | 33 |
Итог получился:
while( ( $currec < $count ) && ( $lines[$currec] !~ '<table name="Directory">' ) ) { $currec++; } $currec++; while( ( $currec < $count ) && ( $lines[$currec] !~ '</table>' ) ) { if( $lines[$currec] =~ '<td>SVDIRMAC</td><td>(\w+)</td>' ) { push( @date, $1 ); print( $1, "\n" ); } $currec++; } $currec++; $size = @date; Как сделать вывод в xml формат?
0
|
5989 / 1998 / 323
Регистрация: 10.12.2013
Сообщений: 6,882
|
|||||||||||||||||||||||||||||||
18.02.2014, 19:46 | 35 | ||||||||||||||||||||||||||||||
найти внутри тэга <table> с атрибутом name="Directory" все тэги <row>
все тэги <row>
1
|
18.02.2014, 19:46 | |
18.02.2014, 19:46 | |
Помогаю со студенческими работами здесь
35
Загрузка содержимого doc файла в RichTextBox по пути файла Считывание файла в массив и запись нового файла Считывание из файла считывание с файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |