Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Пробел в имени файла на vb6.0

Ответить
Настройки темы
Разное - [решено] Пробел в имени файла на vb6.0

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Изменения
Автор: blackeangel
Дата: 12-02-2017
Всем привет.
Как разбить на колонки строку
Код: Выделить весь код
File name 0 0 755
По пробелу?
Что делать если имя файла содержит пробел?
Сплит разобьет на 5 столбцов, а надо на 4: file name в первом столбце, а все остальное вследующих.

Отправлено: 13:56, 01-02-2017

 

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата blackeangel:
Iska, все хорошо, только он оставляет пробелы в конце 1го столбца, а этого не надо бы.... »
Вот что значит — не проверять. Попробуйте так (и опять не проверялось ):
Код: Выделить весь код
^(.+?) +(u:object_r:.*)$
Отлично сработало, спасибо.
А вот если есть пробелы в конце строки, то можно шаблон расширить для этого? Или все таки лучше заменами?

Отправлено: 14:38, 20-02-2017 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
А вот если есть пробелы в конце строки, »
Например? Так:
Код: Выделить весь код
/system/children    mad____u:object_r:childrens mad_____
скажем?!

Тогда можно попробовать так:
Код: Выделить весь код
^(.+?) +(u:object_r:.*?) *$
Update: Ну, вот, опять: концевые пробелы в тэге code движок хранит, но не отображает. Поменял пробелы на подчёркивания.

Отправлено: 15:28, 20-02-2017 | #32


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата blackeangel:
А вот если есть пробелы в конце строки, »
Например? Так:
Код: Выделить весь код
/system/children    mad____u:object_r:childrens mad_____
скажем?!

Тогда можно попробовать так:
Код: Выделить весь код
^(.+?) +(u:object_r:.*?) *$
Update: Ну, вот, опять: концевые пробелы в тэге code движок хранит, но не отображает. Поменял пробелы на подчёркивания.
Не, не прокатывает, тоже уже попробовал.

Отправлено: 16:17, 20-02-2017 | #33


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
Не, не прокатывает, тоже уже попробовал. »
А у меня прокатывает:
Пример кода
Код: Выделить весь код
Option Explicit

Dim strString


strString =  "/system/children    mad    u:object_r:childrens mad     "

With WScript.CreateObject("VBScript.RegExp")
	.Pattern = "^(.+?) +(u:object_r:.*?) *$"
	
	If .Test(strString) Then
		With .Execute(strString).Item(0).Submatches
			WScript.Echo "[" & .Item(0) & "]"
			WScript.Echo "[" & .Item(1) & "]"
		End With
	End If
End With

WScript.Quit 0

Результат
Код: Выделить весь код
[/system/children    mad]
[u:object_r:childrens mad]

Если у Вас не так — выкладывайте образец исходного файла, упакованный в архив.

Отправлено: 16:26, 20-02-2017 | #34


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, странно, так же пробовал и по нулям. Вот файле.

Последний раз редактировалось blackeangel, 03-04-2017 в 22:53.


Отправлено: 18:30, 20-02-2017 | #35


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


А где там, простите, пробелы между именами и «u:object_r:», ась? Я лично вижу там малоудобоваримую мешанину из символов табуляции, пробелов и дефисов:
Скрытый текст

Каким образом Вы получаете данный файл?

P.S. Попробуйте такой шаблон:
Код: Выделить весь код
^(.+?)[ \t-]+(u:object_r:.*?) *$

Последний раз редактировалось Iska, 20-02-2017 в 20:00. Причина: При склеивании сообщений сбрасывается флаг «Отключить смайлики в тексте» у первого сообщения


Отправлено: 19:26, 20-02-2017 | #36


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, между именами в этом файле нет, но есть в конце строк.
Дефисы двойные и табы заменяются на пробелы.
Опять же, его делает производитель прошивок.

Отправлено: 19:49, 20-02-2017 | #37


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


blackeangel, я работаю с тем файлом, который Вы выкладываете, не строя каких-то иных предположений. У меня шаблон, показанный в сообщении #36, корректно разбирает строки выложенного Вами файла на две подгруппы. А у Вас?

Отправлено: 20:02, 20-02-2017 | #38


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, а у меня нет, пробелы в конце остаются, смотрите скриншоты
и, думаю вместо
Код: Выделить весь код
[ \t-]
надо использовать
Код: Выделить весь код
[\s-]

Последний раз редактировалось blackeangel, 03-04-2017 в 22:53.


Отправлено: 21:51, 20-02-2017 | #39


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Не подтверждаю.
Вот код
Код: Выделить весь код
Option Explicit

Sub Main()
    Dim objFSO As New FileSystemObject
    Dim arrContent() As String
    Dim objRegExp As New RegExp
    Dim objTokens As New Dictionary
    
    Dim strString As Variant
    
    
    With objFSO.OpenTextFile("\\tsclient\C\Мои проекты\0046\file_contexts")
        arrContent = Split(.ReadAll(), vbLf)
        .Close
    End With
    
    objRegExp.Pattern = "^(.+?)[ \t-]+(u:object_r:.*?) *$"
    
    For Each strString In arrContent
        Debug.Print strString
        
        If objRegExp.Test(strString) Then
            With objRegExp.Execute(strString).Item(0).SubMatches
                Debug.Print "[" & .Item(0) & "]"
                Debug.Print "[" & .Item(1) & "]"
            End With
        End If
        
        Debug.Print
    Next
    
    Set objRegExp = Nothing
    Set objFSO = Nothing
End Sub
Выжимки из вывода
Код: Выделить весь код
/system/bin/logcat  --  u:object_r:logcat_exec:s0       
[/system/bin/logcat]
[u:object_r:logcat_exec:s0]

/system/bin/sh          --  u:object_r:shell_exec:s0               
[/system/bin/sh]
[u:object_r:shell_exec:s0]

/system/bin/run-as  --  u:object_r:runas_exec:s0
[/system/bin/run-as]
[u:object_r:runas_exec:s0]
Вот скриншот


Цитата blackeangel:
и, думаю вместо [ \t-] надо использовать [\s-] »
Не вижу принципиальной необходимости.

Отправлено: 23:04, 20-02-2017 | #40



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Пробел в имени файла на vb6.0

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - копирование выбранного файла в определенное место и добавление к имени файла даты x800 Скриптовые языки администрирования Windows 0 19-02-2014 20:39
CMD/BAT - Использование имени файла для правки в теле файла. xkafkax Скриптовые языки администрирования Windows 8 20-07-2013 11:06
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" permas Microsoft Windows 2000/XP 2 20-02-2010 19:30
Разное - [решено] Пробел в конце имени папки DuoStorm Microsoft Windows 2000/XP 1 17-04-2008 19:18




 
Переход