|
30 / 8 / 0
Регистрация: 30.09.2011
Сообщений: 33
|
||||||
Разбить строку на подстроки22.01.2012, 18:48. Показов 4664. Ответов 10
Метки нет (Все метки)
Например есть файл C:\Home\НТД\DH_15_12_13_16_00_18_00.xls
Как можно присвоить переменную следующим частям имени файла: 1. var1:= "DH"; 2. var2:= "15_12_13_16_00_18_00". Добавить к названию файла нужную часть можно этим кодом:
0
|
||||||
| 22.01.2012, 18:48 | |
|
Ответы с готовыми решениями:
10
Разбить строку на одинаковые подстроки Разбить текст в ячейке на подстроки Добавить в строку, подстроки, определённое количество раз |
|
|
||||||
| 22.01.2012, 19:59 | ||||||
|
Переменную нельзя присвоить. Можно добать или присвоить ее значение к чему-то или присвоить переменной какое-то значение - что имеется в виду?
var1:= "DH"; - Паскаль? WbMain.Name WbMain - это объект Workbook или что? Можно перефразировать или дать образец названия которое Вы имеете с кодом, который его делает и сами написать образец строки, которую Вы добиваетесь получить? Если я правильно понял, то:
0
|
||||||
|
30 / 8 / 0
Регистрация: 30.09.2011
Сообщений: 33
|
|
| 23.01.2012, 14:16 [ТС] | |
|
Мне нужно, чтобы в имеющейся папке открывались все файлы формата "*.xls" c разными названиями. И чтобы их названия присваивались различным переменным. Например, имею папку 17_10_11 в ней четыре файла(к примеру) с названием TDK_RU_17_10_11.xls, TDK_DG_17_10_11.xls, TDK_TS_17_10_11.xls, TDK_ZR_17_10_11.xls. Я поэтому предположил, что можно выделить первые 5 символов у названия открывающихся файлов, т.к. они уникальны, присвоить их переменной и сделать проверку с if. С указанными 4мя файлами мне придется работать не открывая через диалоговое окно, поэтому мне нужно присвоить Workbook.name уникальным переменным. Есть ли другой способ реализации данной задачи?
0
|
|
|
|
|
| 23.01.2012, 14:38 | |
|
Так, уже более ясней.
Какая конечная цель всех этих действий: 1) Вы планируете вручную работать со всеми открывшимися файлами. Или 2) Вам нужно прочитать с каждого файла какую то информацию по определенному шаблону и потом где-то использовать... Почему спрашиваю: 1) Если п.2, то есть возможность вообще прочитать информацию, не открывая файл. 2) Если п.1, то есть более простой способ получить имена всех файлов.
0
|
|
|
30 / 8 / 0
Регистрация: 30.09.2011
Сообщений: 33
|
||||||
| 23.01.2012, 16:40 [ТС] | ||||||
|
Скорее п.2, но я писал программу, которая работает при открытом Workbook, а затем закрывает его и переходит к след. workbook. Но все названия файлов Workbook(Name)Worksheet(1) у меня имеют определенное имя, это не совсем удобно, т.к. приходится менять для каждого расчета имя файлов для другого режима.
Добавлено через 44 минуты Вот нашел на форуме код, но мне нужно присвоить имя каждому открытому файлу, что нужно поправить?
0
|
||||||
|
|
||||||
| 23.01.2012, 17:21 | ||||||
|
Тогда Вам нужна команда Dir. Ее использование очень специфическое для бейсика, не такое как в MS-DOS. Написал конструкцию, которой Вы сможете последовательно прочить каждое имя файла XLS:
1) в папке с макросом (тогда само имя книги с макросом исключается из чтения). Или 2) в другой папке, задав еще в переменной Folder.
1
|
||||||
|
|
|||||||
| 23.01.2012, 17:26 | |||||||
|
Так, нельзя присвоить открытой. Можно: 1) сохранить под новым именем. Или 2) Закрыть книгу и переименовать файл. Что именно Вы хотите сдеолать? Может Вам и не нужно открывать все файлы, а достаточно будет вышеизложенного кода и этой команды:
0
|
|||||||
|
30 / 8 / 0
Регистрация: 30.09.2011
Сообщений: 33
|
||||||
| 23.01.2012, 22:32 [ТС] | ||||||
0
|
||||||
|
|
|||||||||||||||||
| 23.01.2012, 22:57 | |||||||||||||||||
Чему по-Вашему сейчас равняется переменная folder? Dir - будет работать некорректно.
Если хотите получить имя файла (а не полное имя файла) закомментируйте строку в моем примере:
Чтобы написать код, у меня нет достаточно информации: 1) Что у Вас под Range("B5") - изменяемый путь к документам? Так и не понятна конечная цель - открыть по очереди каждый документ в папке X, а затем произвести над ним действия с помощью макросов, записанных под именами 1.xls'!Лист6.Data_GT_11_10 ... и.т.д., а затем сохранить (под тем же именем? в той же папке?) и закрыть? Можно как-нибудь "разжевать" ?
0
|
|||||||||||||||||
|
30 / 8 / 0
Регистрация: 30.09.2011
Сообщений: 33
|
||||||
| 23.01.2012, 23:27 [ТС] | ||||||
0
|
||||||
|
|
||
| 24.01.2012, 01:46 | ||
|
Еще раз говорю:
(Ваш пример мне непонятен). Если бы Вы выложили суперсекретные файлы, заменив все звездочками, т.е. прикрепили сюда несколько исходных файлов и файл, который должен получится - можно было бы говорить об оптимальном алгоритме. Ведь, если Вам всего лишь нужно прочитать данные со всех этих книг с одинаковых Range-й можно эти книги НЕ открывать вообще. Не по теме: Мне было бы интересно это реализовать. Так как я помогаю только ради практики и "тренировок" новых алгоритмов. Все, не буду оффтопить. Переходим на ЛС.
0
|
||
| 24.01.2012, 01:46 | |
|
Помогаю со студенческими работами здесь
11
Разбить строку на символы Разбить строку на числа, разделенные пробелами Строку в ячейке разбить по разным ячейкам
Как разбить строку символов используя один разделитель. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|