Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

На первый взгляд все просто

84K
05 сентября 2012 года
nw3pd
4 / / 05.09.2012
Вопрос такого характера
нужно зайти в папку по адресу: D:\2012\9\
и проверить там файлы, их около 8 с разными порядковыми номерами,
а тут самое интересное: имя файла имеет такую структуру F1231212-3337-20120901-20120905
необходимо найти этот файл по имени формы F1231212, найти в таблице строку с этим именем,
затем считать порядковый номер 3337,найти столбец с этим номером,
и в конце концов записать в эту ячейку дату из последней группы чисел т.е. 05.09.2012
ПОМОГИТЕ, КТО ЧЕМ МОЖЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!
40K
05 сентября 2012 года
D129
228 / / 18.04.2012
Есть стандартная функция -

Directory.GetFiles("C:\D")

Она возвращает массив строк, которые суть имена файлов.

Дальше надо пропарсить (разделить )
Эти строки на нужные части, части сложить в специально созданный для этого класс, и сложить обьекты этого класса в список.
После этого элементарно пишутся необходимые поиски по этому списку и вытаскивание нужного в базу данных или еще куда.

Идея такая - "порядковый номер 3337" - это по смыслу, целое число? Значит поле(или лучше свойство) класса должно быть integer.

20120905 - Дата? ок, тип свойства в классе должен быть DateTime.

Парсер должен уметь все правильно преобразовывать.

Тогда вам будут для бизнес логики доступны все правильные операции над простыми типами - например, вам нужна разница дат - как вы ее бы вычисляли из строк типа "20120905"?
84K
05 сентября 2012 года
nw3pd
4 / / 05.09.2012
Спасибо, я приблезительно таким и рассуждал способом, вот только как разделить имя?
И команда Directory.GetFiles подразумевает имя файла в себе или нет?

Отдельный человек скидывает файлы на сервер,а я раз в месяц проверяю его содержимое.
Меня не волнует что внутри файла интересует только имя, которое я хочу автоматизорованно записывать в базу, обычную таблицу xls
40K
05 сентября 2012 года
D129
228 / / 18.04.2012
GetFiles подразумевает имя директории.


Парсинг может быть написан по-разному.
В вашем случае - просто порезать строку по индексам символов, или можно использовать "-" как разделитель,
есть такая функция String.Split (...)

В начале такой порядок кажется излишним, но так вы будете готовы к любым будущим изменениям, и облегчите жизнь и себе, когда вас через полгода попросят сделать "такое же, только без крыльев".
84K
05 сентября 2012 года
nw3pd
4 / / 05.09.2012
И здесь я тоже уловил, осталось последнее никак не могу сообразить куда и каким точно образом GetFiles записывает содержимое папки?
Никак не могу найти пример!?!? Что-бы наглядно понять, не поможете?
теоретически я понимаю что он записывает имена файлов в столбик, откуда я разбирая каждое имя беру нужные символы?только в какой файл, куда???
40K
05 сентября 2012 года
D129
228 / / 18.04.2012
да хоть так:
 
Код:
Dim returnValue As String()
   Dim i as Integer
   returnValue = Directory.GetFiles("D:\Data\")
   For i = 0 To returnValue.Length - 1
                       
         Dim file as String = returnValue(i).ToLower
                           
         System.IO.File.Delete(file)
                     
   Next
Функция создает внутри себя коллекцию, заполняет ее строчками, и возвращает ссылку на эту коллекцию для дальнейшего использования.
84K
11 сентября 2012 года
nw3pd
4 / / 05.09.2012
Спасибо, с поиском разобрался. Теперь вопрос такой:
Каким образом записать переменную в формулу Excel т.к. необходимо делить ячейку с помощью макроса, а возможно только через Excel
мне необходимо разделить ячейку с таким текстом F0111101-3287R-20211009-20211007
только чтобы первая группа была 0111101, вторая 3287, и последняя 20211007, как это сделать на VBA????
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог