|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Всем привет. Как разбить на колонки строку Код: sql 1.
По пробелу? Что делать если имя файла содержит пробел? Сплит разобьет на 5 столбцов, а надо на 4: file name в первом столбце, а все остальное вследующих. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 13:49 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
На vb6.0 это сделать бы ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 13:49 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Программненько - отдели 3 последних элемента после сплита, остальное сджойни обратно. Ну скажем так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Хотя я бы сделал универсальную функцию... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 13:59 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
AkinaПрограммненько - отдели 3 последних элемента после сплита, остальное сджойни обратно. Хотя я бы сделал универсальную функцию... Вот вот. Универсальное было бы в тему. Просто бывает не 3, а 4 например. И количество пробелов в имени файлов бывает разное. И ещё, какую проверку добавить есть ли в имени пробелы? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 14:11 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelколичество пробелов в имени файлов бывает разное.Приведённому коду по барабану. BlackeAngelкакую проверку добавить есть ли в имени пробелы?Нахрена? BlackeAngelУниверсальное было бы в тему.Пиши, какие сложности? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 14:39 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Akina, а если встречается и 3 и 4 и 5 с конца строки? Например. system/box/book for children 0 0 644 /books/for people На выходе должно быть 5 столбцов. Как тут? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 14:50 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Akina, Akina, Проверка нужна для того чтобы не гонять цикл лишний раз. Итак получается цикл в цикле в цикле. ТК я сначала читаю файл в одну строку, потом бью ее на строки по каретке, потом начинаю перебирать эти строки и делить на столбцы. Но в этих строках по разному, то 5 столбцов то 4 получается. А ТК есть пробелы то все, мол за пределами массива ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 14:57 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelsystem/box/book for children 0 0 644 /books/for people На выходе должно быть 5 столбцов. Не понял... поясни, почему 5. Или даже не так. Сформулируй правило, по которому можно однозначно идентифицировать, где делить на элементы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 15:01 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
5 колонок: 1 system/box/book for children 2 0 3 0 4 644 5 /books/for people На счет правила. Типа в середине есть цифры с пробелами. Опять же цифры не определены. Все что справа или слева это отдельные столбцы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 15:37 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelНа счет правила. Типа в середине есть цифры с пробелами. Опять же цифры не определены. Все что справа или слева это отдельные столбцы.тут лучше и проще регуляркой тогда. BlackeAngelцифры не определеныкак это не определены? цифр всего десять (у вас в примере вроде арабские цифры) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 15:54 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, А сколько комбинаций? 5 форов? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 16:06 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelв середине есть цифры с пробеламиА в именах файлов их гарантированно нет? тогда после сплита проверяй, в каких элементах массива значения могут интерпретироваться как числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 16:55 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelShocker.Pro, А сколько комбинаций? 5 форов?да какая разница? есть пять колонок, в средних могут быть только комбинации цифр. Код: plaintext
и вперед с песней ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 18:40 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: plaintext
и вперед с песней 5 колонок: 1 system/box/book vol. 1 2 0 3 0 4 644 5 /books/for people ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:04 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Proесть пять колонок Нет их, есть только строка. Их то как раз и надо получить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:08 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Сработает или хз? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:29 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
не забудь подключить Microsoft RegularExpressions Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:45 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Proне забудь подключить Microsoft RegularExpressionsну или поздним связыванием Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:47 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
вот так будет правильнее Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 19:52 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, А теперь вернемся к проверке. Если в строке имя файла не содержит пробелы Типа system/bin/marr 0 0 550 Ваш код не заткнется? Нормально отработает? Разобьет на 4 столбца? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 20:17 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
если после 550 нет пробела, то заткнется ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 20:56 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Proесли после 550 нет пробела, то заткнется То есть, все таки надо проверку. Какую? На проверку кол-ва пробелов? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 21:13 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Зачем? Просто переписать регулярное выражение. Только вы СНАЧАЛА определитесь со ВСЕМИ возможными обрабатываемыми вариантами, а то у вас техзадание раз пять уже поменялось, совсем нет желания переделывать решение сто раз. Ну или почитайте про регулярные выражения. В вашем случае они довольно простые и всегда в жизни пригодятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 21:23 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Так к тому что там присутствуют все варианты что я спрашивал, поэтому нужен либо универсальный код, либо проверка на тот или иной шаблон. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 22:16 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Регулярки в VBScript почему-то не поддерживают "просмотр назад". Поэтому получилось чуть сложнее: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2017, 10:51 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Но есть в файле такие строки как: Код: vbnet 1.
тут двойка затесалась между пробелами. В данном случае мой код отработает корректно. Однако, если в имени файла будут три числа через пробелы, тут начнутся нюансы. С другой стороны, разнообразие чисел в примере ограничено: 0, 2000, 755, 644 Может стоит жестко задать их набор? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2017, 10:54 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, 0555, 0550,1301 и т.д. Этих чисел много :( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2017, 21:21 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, А как это все затронуть в массив? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 19:23 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Засунуть в массив ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 19:23 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
Что тут не так? Он одну и ту же запись лепит везде. Вот файл. Помогите добить? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 19:26 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngel Код: vbnet 1. 2.
Зачем два вложенных цикла по одному и тому же массиву? Либо один, либо другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 20:42 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Типы разные: elem - string j - integer И одно на другое подменить не прокатит. Как переделать? Что то мозг иссох уже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 21:03 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Что мешает? Код: vbnet 1. 2.
можно и наоборот Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 21:05 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
А вообще, не очень хорошая идея читать весь файл в память. Что мешает читать и обрабатывать его построчно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 21:06 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.ProЧто мешает? Код: vbnet 1. 2.
можно и наоборот Код: vbnet 1. 2.
Спасибо, 2й вариант оправдал догадки. А построчно чтение типа долгое...Мне так говорили, но правда это или нет, я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 21:38 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelА построчно чтение типа долгое...Мне так говорили, но правда это или нет, я не знаю.Если файл небольшой, то загрузка в память целиком - оправдана. С другой стороны, на маленьком файле и разницы не увидишь. Но логи, как правило, длинные, Как думаешь, что произойдет, если попытаешься считать разом 500Мб файл? Впрочем, промежуточный массив с результатом при большом объеме - тоже не очень хорошая вещь, все зависит от того, что с этими данными планируется делать дальше. Впрочем, это просто информация на будущее. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2017, 22:30 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Хорошо, а теперь наступила пора подобрать другой шаблон развивающий на 2 столбца например, такое /system/children mad u:object_r:childrens mad Где разделитель на столбцы может быть одним, двумя, тремя ... n пробелами. Вторая часть всегда начинается с u:object_r: ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2017, 21:03 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
BlackeAngelа теперь наступила поравидимо, наступила пора все-таки открыть учебник по регулярным выражениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2017, 23:51 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, все хорошо, только он оставляет пробелы в конце 1го столбца, а этого не надо бы.... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2017, 22:14 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, в переменных типа такого проскакивает Код: vbnet 1.
а хотелось бы чтобы разбивал правильно Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2017, 22:59 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Вот это можно использовать как ваше первое задание по регулярным выражениям. Добавить после второй группы произвольное количество пробелов, так чтобы они не попадали во вторую группу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 00:51 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Так? Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 05:52 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Виноват, я, засыпая, неверно прочел проблему, не второй столбец, а первый.... Надо просто использовать "ленивый квантификатор" Код: vbnet 1.
По умолчанию "жадный" захапал все пробелы себе в первую группу, "ленивый" оставил. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 09:09 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, А как еще в конце строки убрать все пробелы во втором столбце? Что добавить надо ещё? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 12:27 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
BlackeAngelShocker.Pro, А как еще в конце строки убрать все пробелы во втором столбце? Что добавить надо ещё? так их (пробелы) и добавить: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 15:22 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Не добавить, а убрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 16:10 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Те пробелы, которых несколько, перед переносом строки. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 16:13 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
А на выходе должно получиться 2 столбца Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 16:15 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
[quot Shocker.Pro]BlackeAngelтак их (пробелы) и добавить: Код: vbnet 1.
Такой код не проходит... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 18:36 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Такое тоже не проходит Код: vbnet 1.
Вот файл - пример ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2017, 18:38 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
а почему он должен проходить? BlackeAngel Код: vbnet 1.
BlackeAngel Код: vbnet 1.
как говорится, найди восемь отличий ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 00:02 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Опечатался, но копи-паст никто не отменял ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 00:10 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Так в чем проблема-то? какой паттерн с какой исходной строкой не проходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 00:14 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, Если брать файл-пример, то первые 2 строки, не проходят по Код: vbnet 1.
Во 2 столбце остаются пробелы до конца строки, вот с ними не знай что делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 00:20 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
ну тут-то ты правильно ленивый квантификатор добавил к второй группе, иначе она тоже пробелы себе сжирает 20230294 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 00:29 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Shocker.Pro, ну что может быть неправильно? Почему магия то не происходит? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 06:04 |
|
Пробел в имени файла
|
|||
---|---|---|---|
#18+
Паттерн работает нормально Код: vbnet 1. 2. 3. 4. 5. 6. 7.
думаю, что ты просто накосячил с концами строк BlackeAngel Код: vbnet 1. 2.
то есть тут, например, получается CR CR LF ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2017, 08:53 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2155323]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 326ms |
total: | 466ms |
0 / 0 |