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

Компьютерный форум 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

 

Аватара для opel431

Ветеран


Contributor


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

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


Найти первое слово, вырезать его, а оставшуюся часть строки разбить. Похоже в VB это функции - InStr, Mid, Len.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 16:39, 01-02-2017 | #2



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

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


Аватара для blackeangel

Старожил


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

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


Цитата opel431:
Найти первое слово, вырезать его, а оставшуюся часть строки разбить. Похоже в VB это функции - InStr, Mid, Len.
А так
Код: Выделить весь код
system/box/book for children 0 0 644 /books/for people
Тут должно получиться 5 столбцов

Отправлено: 19:12, 01-02-2017 | #3


Забанен


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

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


Как и другие ЯП Васик поддерживает регулярки, ими, собственно, и бейте строку. Самая регулярка будет в данном случае выглядить примерно так:
Код: Выделить весь код
([a-z]+\/?\s?)+|\d+

Отправлено: 09:53, 02-02-2017 | #4


Ветеран


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

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


Банальная функция Split(string, " "). Ах, да, Вы в курсе, не увидел зараз.

Цитата blackeangel:
Что делать если имя файла содержит пробел? »
Самое правильное — не использовать в качестве разделителя токенов символы, могущие входить в состав самого токена.

Цитата blackeangel:
А так »
С каких пор в именах файлов стали допустимы символы «/»?! Они используются в качестве разделителя в пути. Или Ваше:
Цитата blackeangel:
имя файла »
следует на самом деле читать как «путь к файлу»?

В любом случае Вам следует сделать либо а) заранее позаботиться о содержимом исходной строки или б) найти методы, позволяющие однозначно судить о начале и конце каждого токена в строке. Например, для приведённых Вами вариантов воспользоваться регулярками по совету коллеги greg zakharov.

Отправлено: 21:28, 02-02-2017 | #5


Аватара для blackeangel

Старожил


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

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


Что то такое?
Код: Выделить весь код
Dim re As Object, result As Object, i As Integer
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "^(.*) (\d+) (\d+) (\d+)( ?(.*))?$"
Set result = re.Execute("system/app/MetokNLP/lib/arm64/liblocSDK 2 5OEMXXX.so 0 0 644")
Однако не знаю как он отработает, если пробелов нет, например, в такой строке:

system/app/MetokNLP/lib/arm64/lib.so 0 0 644

Отправлено: 21:36, 06-02-2017 | #6


Ветеран


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

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


Цитата blackeangel:
Что то такое? »
Явно нет.

Вы сначала определитесь, какие могут быть варианты, затем — по каким критериям для всех этих вариантов можно определить токены. Вот я вижу у Вас уже кучу вариантов:
Код: Выделить весь код
File name 0 0 755
system/box/book for children 0 0 644 /books/for people
system/app/MetokNLP/lib/arm64/liblocSDK 2 5OEMXXX.so 0 0 644
system/app/MetokNLP/lib/arm64/lib.so 0 0 644
и это явно не все возможные. Я, например, совершенно не представляю, что это такое, и что там вообще может быть. Излагайте подробно, иначе толку не будет.

Отправлено: 05:36, 07-02-2017 | #7


Аватара для blackeangel

Старожил


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

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


Цитата Iska:
Цитата blackeangel:
Что то такое? »
Явно нет.

Вы сначала определитесь, какие могут быть варианты, затем — по каким критериям для всех этих вариантов можно определить токены. Вот я вижу у Вас уже кучу вариантов:
Код: Выделить весь код
File name 0 0 755
system/box/book for children 0 0 644 /books/for people
system/app/MetokNLP/lib/arm64/liblocSDK 2 5OEMXXX.so 0 0 644
system/app/MetokNLP/lib/arm64/lib.so 0 0 644
и это явно не все возможные. Я, например, совершенно не представляю, что это такое, и что там вообще может быть. Излагайте подробно, иначе толку не будет.
1й и 4й вариант это одно и то же тип - пробелы слева.
А вот только пробелы справа, что то упустил.
В общем возможные варианты:
1. Пробелы слева(относительно цифр)
2. Пробелы справа
3. Пробелы и справа и слева
4. Нет пробелов.
Ну например.

Код: Выделить весь код
1. File name 0 0 755
3. system/box/book for children 0 0 644 /books/for people
2. system/app/MetokNLP/lib/arm64/liblocSDK.so 0 0 644 /bookmack/file for read
4. system/app/MetokNLP/lib/arm64/lib.so 0 0 644

Отправлено: 19:28, 07-02-2017 | #8


Ветеран


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

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


blackeangel, Вы не поймёте, что я хочу услышать.

Что собой представляет данная строка? Откуда она берётся? Каким правилам подчиняется её содержимое? Что представляет собой каждый токен этой строки? Каким может быть содержимое каждого токена? Почему в одном случае их четыре, а в другом пять?

Последний раз редактировалось Iska, 08-02-2017 в 22:29. Причина: Описка


Отправлено: 21:19, 07-02-2017 | #9


Аватара для blackeangel

Старожил


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

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


Цитата Iska:
blackeangel, Вы не поймёте, что я хочу услышать.

Что собой представляет данная строка? Откуда она берётся? Каким правилам подчиняется её содержимое? Что представляет собой каждый токен этой строки? Каким может быть сожержимое каждого токена? Почему в одном случае их четыре, а в другом пять?
Цитата:
Что собой представляет данная строка? Что представляет собой каждый токен этой строки?
Файл с путем, права на файл, ссылка на файл
Цитата:
Откуда она берётся?
Из текстового файла, создаваемый в процессе распаковке файла-образа
Цитата:
Каким правилам подчиняется её содержимое?
Без понятия, это андроид, юникс система, и что там и как там не в курсе
Цитата:
Каким может быть сожержимое каждого токена?
Знает только производитель
Цитата:
Почему в одном случае их четыре, а в другом пять?
Где то есть ссылка на файл, где то ее нет.

Отправлено: 22:07, 08-02-2017 | #10



Компьютерный форум 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




 
Переход