powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заливка текстового файла
21 сообщений из 21, страница 1 из 1
Заливка текстового файла
    #39358214
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый.
Подскажите, как можно залить вот это:
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358230
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, без VBA тут не обойтись.
Создаете спецификацию импорта с фиксированной шириной, импортируете все, вместе с разделителями во временный файл и в цикле по строкам собираете перенесенные строки в двух последних колонках. Можно попробовать извратиться и без VBA, но навскидку запрос для сборки строк не напишу.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358301
ИМХО, только с помощью VBA и лучше для этого использовать объект ADODB.Stream, т.к. он позволяет указать кодировку символов.
Указываете кодировку - открываете файл и читаете построчно. Строки, проверяете на наличие даты со 2-го символа (например Like "?##.##.####*"). Если есть - дерибаните строку на части и вносите запись в Recordset на таблице-получателе.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358306
simply, это банковская выписка. Неужели в наше время банк не дает возможности экспортировать ее в какой-то формат, доступный для стандартного импорта?
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358330
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ),
А зачем через стрим читать? В спецификации импорта проще указать положение колонок и можно указать кодировку. С таблицей проще работать, чем кодом разбирать текст.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358541
MrShinА зачем через стрим читать? В спецификации импорта проще указать положение колонок и можно указать кодировку. С таблицей проще работать, чем кодом разбирать текст. В файле есть несколько строк заголовка, плюс строки с данными разделены линиями.
Можно, конечно, и импортом со спецификацией с фикс. столбцами и всеми полями текстового типа, но таблицу, которую вы получите, так же прийдется серьезно обрабатывать.
Если перед импортом вручную удалить всё лишнее и импортировать начисто. Но выписка, это каждый день и объем данных может быть не маленький. Хлопотно...
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358633
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поудалять программно шляпу и горизонтальные разделители, а остаток импортировать как DOS-текст с разделителем.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358728
AkinaПоудалять программно шляпу и горизонтальные разделители, а остаток импортировать как DOS-текст с разделителем. Т.е. открыть файл - читать построчно - искать строки с данными - добавлять в другой файл, который потом импортировать?
Ну и чем это проще моего варианта? Разбить строку на части, заранее зная их размер - не проблема. Не нравится ADODB.Stream - можно через FSO или собственными средствами VBA, плюс функция перекодировки. Как бонус - легко проверяется, не дублируется ли выписка.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358861
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев )чем это проще моего варианта?
Да собсно ничем, если не считать того, что импортированы будут сразу все записи, одной командой, а не по одной записи. И не надо ничего дробить на куски и собирать потом в строку запроса опять же. В общем, ручной работы меньше. По моим прикидкам, весь код будет состоять всего из 8 операторов.

Анатолий ( Киев )искать строки с данными
Если ориентироваться на скриншот, то есть устойчивый признак данных - второй символ цифра.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358902
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simply,

а никак этот кусок в нормальной кодировке сюда в txt файл не выложить ? Или в ненормальной хотя бы...
а то тут уже множество прожектов предложено, а могли бы быть и готовые решения...
я бы вообще рубанул первые 13 строк и пристегнул этот файл как таблицу к базе (без заголовков строк) ,
потом каждый следующий файл для импорта кидал на место первого без первых 13 строк с заменой и всё...
Не гоню... смотри картинку...

Единственное чтоб прилинковать файл, нужно сначала сделать идеально правильным его макет - оставить только 2-3 информационных строки, причем однострочных типа:
i 30.12.2017 i 12345 i привет i
i 30.12.2016 i 12344 i привет2 i
ну и указать правильно нужный разделитель в строке...

То, что потом получается в таблице легко переваривается запросами...
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358920
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев )simply, это банковская выписка. Неужели в наше время банк не дает возможности экспортировать ее в какой-то формат, доступный для стандартного импорта?
Увы, имеем то, что имеем.

vmagsimply,
а никак этот кусок в нормальной кодировке сюда в txt файл не выложить ? Или в ненормальной хотя бы...
а то тут уже множество прожектов предложено, а могли бы быть и готовые решения...
...
Виноват, что сразу не выложил файл. Завтра с работы выложу. Спасибо
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39358922
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simplyВиноват, что сразу не выложил файл. Завтра с работы выложу. Спасибо

можете сами попробовать, думаю и выкладывать не нужно будет...
- удалить первые 13 строк, оставить пару информационных однострочных и сохранить
- связь с таблицами, выбрать формат файлы txt,
- в диалоге выбрать кодировку, разделитель, настроить типы полей (чтоб не париться можно выбрать везде текст)
- связать и проверить на открытие таблицу в базе.
После этого можно вместо этого файла подставлять реальные без первых 13 строк и по идее всё...
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359037
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев )ИМХО, только с помощью VBA и лучше для этого использовать объект ADODB.Stream, т.к. он позволяет указать кодировку символов.
Указываете кодировку - открываете файл и читаете построчно. Строки, проверяете на наличие даты со 2-го символа (например Like "?##.##.####*"). Если есть - дерибаните строку на части и вносите запись в Recordset на таблице-получателе.

Попробую разобраться с ADODB.Stream, раньше не сталкивался.........
Тут еще дополнительная задачка. В таблице, в двух последних столбцах, значения поля "размазалось" по строкам и нужно будет это дело собрать воедино.
Вот выкладываю файл
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359045
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача на 10 минут. чо за проблема вообще?
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359084
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPCзадача на 10 минут. чо за проблема вообще?
Предложите, свой работающий вариант. Это пойдет на пользу мне и многим как пример.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359089
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagsimply,
Единственное чтоб прилинковать файл, нужно сначала сделать идеально правильным его макет - оставить только 2-3 информационных строки, причем однострочных типа:
i 30.12.2017 i 12345 i привет i
i 30.12.2016 i 12344 i привет2 i
ну и указать правильно нужный разделитель в строке...

То, что потом получается в таблице легко переваривается запросами...

Сделал таким способом, вроде получилось, но не хотелось бы держать постоянно связь с файлом в базе. При необходимости создавать и сразу же удалять. Теперь вопрос как это реализовать по событию.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359116
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ровно 2 строки кода. В описании спецификации я только 3 поля выделил, принцип, думаю, понятен. То, что грузится в таблицу разобрать запросами или просто в цикле будет просто.

Имя файла только сделайте без русских букв и пробелов, у меня ошибка вылезала, не стал разбираться.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359121
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simply,

Постоянной связи нет - в база просто ссылка на файл (при этом файл можно менять, удалять, корректировать).
Файл блокируется только при открытии таблицы или запроса на эту таблицу.
На счет события это слишком общий вопрос, чтобы дать конкретный ответ.
Вам нужно:
1. Проверить как открывается теперь оригинальный файл (без удаления 13 строк), возможно настройки смогут переварить эти 13 строк в 13 строк мусора таблицы (тогда отпадет проблема с изменением оригинала файла)
2. Если пункт 1 не прокатил - то нужно решить проблему с программным выбросом первых 13 строк из файла
оригинала (если руками это делать не охота).
3. Далее сделать механизм выборки и заливки содержимого прилинкованной таблицы в нужную вам таблицу.
4. Вопрос про событие вообще непонятен - ну сделайте на форме кнопку "Импорт", при нажатии получите соответствующее событие, куда и пишите:
- выбор и копирование (возможно с обрезкой) файла импорта в место привязки файла шаблона
- выполнение пункта 3
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359122
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Делал точно так же, но таблица была пустой. Видимо сделал ошибку в имени спецификации.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359152
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simplyLocksmithPCзадача на 10 минут. чо за проблема вообще?
Предложите, свой работающий вариант. Это пойдет на пользу мне и многим как пример.

Не предложу, VBA не разумею. На обжэктпацкале только могу.
...
Рейтинг: 0 / 0
Заливка текстового файла
    #39359160
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simply,

Вот со сборкой строк и очисткой.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заливка текстового файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]