powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / txt в mdb
38 сообщений из 38, показаны все 2 страниц
txt в mdb
    #33961197
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можете меня стукнуть, пнуть и т.п. ни где не найду кусок кода для конвертации из тхт в мдб...

а точнее надо экспортировать лог файл от файервола в базу потом с ней работать, или что то есть проще и быстрее,

через акцесс конвертацию не предлогать :)

спасибо
...
Рейтинг: 0 / 0
txt в mdb
    #33961232
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL Server DTS
...
Рейтинг: 0 / 0
txt в mdb
    #33961236
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно программно... кто покажет код как это делаеть? разделение в файле пробелами...
...
Рейтинг: 0 / 0
txt в mdb
    #33961277
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hangkilнужно программно... кто покажет код как это делаеть? разделение в файле пробелами...
когда создаешь пакет DTS там есть возможность записать обработку в модуль vb там и смотри как это делается
...
Рейтинг: 0 / 0
txt в mdb
    #33961281
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если прямо в Акцессе то
Код: plaintext
DoCmd.TransferText

если посредством SQL, то
Код: plaintext
BULK INSERT
...
Рейтинг: 0 / 0
txt в mdb
    #33961283
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приконектиться к mdb через ado и выполнить запрос
Код: plaintext
SELECT * INTO [divx] FROM [Text;FMT=Delimited;HDR=NO;IMEX= 2 ;CharacterSet= 866 ;DATABASE=C:\].[logfile#txt]
(в данном случае идёт импорт из файла c:\logfile.txt)
...
Рейтинг: 0 / 0
txt в mdb
    #33961301
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уже ближе... спасибо.. у меня нет под рукой SQL покажите весь код
...
Рейтинг: 0 / 0
txt в mdb
    #33961306
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как объявлять ДТС и нужно ли это делать в ВБ?
...
Рейтинг: 0 / 0
txt в mdb
    #33961311
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я конечно почитаю про это, боюсь времени много займет
...
Рейтинг: 0 / 0
txt в mdb
    #33961330
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hangkilя конечно почитаю про это, боюсь времени много займет
если нет SQL Server то нечаго не получиться дрова DTS ствятся вместе с ним
а про чтение то же не так уж много времени займет поскольку ты создаешь в дисигн тайме пакет а он преобразюется в модуль vb и все что нужно объявить объявляестя сомо собой в модуле а потом прицепи это модуль к своему проекту и пробуй
...
Рейтинг: 0 / 0
txt в mdb
    #33961426
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну должны же гдето валяться коды... или они только по ссылкам работают на ДТС?
...
Рейтинг: 0 / 0
txt в mdb
    #33961442
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DTS - это часть SQL сервера . Забудь о нем. Используй способ marvan'a.
...
Рейтинг: 0 / 0
txt в mdb
    #33961479
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понял...
...
Рейтинг: 0 / 0
txt в mdb
    #33961487
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще затмение...
Ну при чём здесь DTS, если работа идёт с Access?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub Main()
    Dim cn As New ADODB.Connection
    With cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Mode = adModeReadWrite
        .ConnectionString = App.Path & "\temp.mdb"
        .Open
        .Execute "SELECT * INTO [logfile] FROM [Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=866;DATABASE=C:\].[logfile#txt]"
    End With
End Sub
Для того, чтобы понять как формируется строка
Код: plaintext
[Text;FMT=Delimited;HDR=NO;IMEX= 2 ;CharacterSet= 866 ;DATABASE=C:\].[logfile#txt]
Надо прилинковать в Access интересующий txt файл и посмотреть соответствующую запись в MSysObjects
...
Рейтинг: 0 / 0
txt в mdb
    #33961507
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvanВообще затмение...
Ну при чём здесь DTS, если работа идёт с Access?Просто DTS может гонять данные между любыми источниками.
...
Рейтинг: 0 / 0
txt в mdb
    #33961594
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2marvan
спасибо огромное ведь работает...
тока надо еще найтить как разделять поля.

у меня разделителем работает пробел
...
Рейтинг: 0 / 0
txt в mdb
    #33961924
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ребята... осталось то малость... как сказать запросу что разделение ПРОБЕЛАМИ?
...
Рейтинг: 0 / 0
txt в mdb
    #33961975
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hangkilребята... осталось то малость... как сказать запросу что разделение ПРОБЕЛАМИ?
Я же писал:
marvan
Для того, чтобы понять как формируется строка
Код: plaintext
[Text;FMT=Delimited;HDR=NO;IMEX= 2 ;CharacterSet= 866 ;DATABASE=C:\].[logfile#txt]
Надо прилинковать в Access интересующий txt файл и посмотреть соответствующую запись в MSysObjects
...
Рейтинг: 0 / 0
txt в mdb
    #33962140
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если б я знал что это и где... я б не задавал лишних вопросов...
если не трудно то ...
...
Рейтинг: 0 / 0
txt в mdb
    #33962215
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(наугад по аналогии)
Попробуй Delemeter= ;
Или что-то в этом роде =)
...
Рейтинг: 0 / 0
txt в mdb
    #33962355
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал FMT=Delimited(;) роботает если разделитель ; а как пробел ему написать? FMT=Delimited( ) фигу...
...
Рейтинг: 0 / 0
txt в mdb
    #33962390
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Format=Delimited(;) в шема файле
если не получается то не лучше изменить разделитель в тхт файле через ворд
на точку запятую
...
Рейтинг: 0 / 0
txt в mdb
    #33962745
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
txt в mdb
    #33962846
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробел не получиться использовать, попробуй сделать Schema.ini файл и задать там фиксированную длину полей
...
Рейтинг: 0 / 0
txt в mdb
    #33963847
blinow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что уже ручками лень стало писать, никогда не задумывался над это проблемой, этож текстовик Open ... for input as #1 и ковыряй как хош
...
Рейтинг: 0 / 0
txt в mdb
    #33963976
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
txt в mdb
    #33963980
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и так открывал , обработка занимает более 3 мин если делать в цикле, и поменьше если открывать его на длину файла, пробовал перегонять в базу, намного быстрее всех остальных вариантов + любые запросы...

блин наверно придется с файлом инишным...
...
Рейтинг: 0 / 0
txt в mdb
    #33964968
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT * INTO [divx] FROM [Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=866;DATABASE=C:\].[logfile#txt]


а вот к этому запросу можно прикрутить cshema.ini и вообще как его публиковать? или ложить туда где текстовик?
...
Рейтинг: 0 / 0
txt в mdb
    #33965123
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там где текстовик
см. msdn
...
Рейтинг: 0 / 0
txt в mdb
    #33977653
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 marvan

Надо прилинковать в Access интересующий txt файл и посмотреть соответствующую запись в MSysObjects


это где? и что ?.... простите...
...
Рейтинг: 0 / 0
txt в mdb
    #33977672
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ладно все понял...

ну почему с пробелами не работает?
...
Рейтинг: 0 / 0
txt в mdb
    #33977804
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может
Код: plaintext
Chr( 32 )
попробывать?
...
Рейтинг: 0 / 0
txt в mdb
    #33978686
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробывал... еще варианты?
...
Рейтинг: 0 / 0
txt в mdb
    #33979030
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hangkil,
в диалогах экспорта/импорта есть кнопочка "Дополнительно...", где можно задать/выбрать/изменить т.н. спецификацию экспорта/импорта. Для того, чтобы использовать сохранённую в базе спецификацию, надо добавить секцию DSN в строку соединения:
[Text;DSN=Моя спецификация для текста с пробелом;FMT=Delimited; ...
...
Рейтинг: 0 / 0
txt в mdb
    #33980583
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это понятно, я все настраивал через DSN мне нужно программно делать запрос
SELECT * INTO [divx] FROM [Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=866;DATABASE=C:\].[logfile#txt]
это работает только нужно узнать как сказать ему что разделителем в файле работает пробел...
...
Рейтинг: 0 / 0
txt в mdb
    #33980754
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hangkil,
я не вижу в строке "[Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=866;DATABASE=C:\]" секции DSN, поэтому позволю себе усомниться, что "понятно". Разделитель-пробел указывается в спецификации экспорта/импорта. Спецификации сохраняются в базе, могут быть импортированы из другой базы.
...
Рейтинг: 0 / 0
txt в mdb
    #33996066
hangkil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это др. строка, для примера, если делать через DSN то работает, а мне надо через конекшен стринг и кодом.
...
Рейтинг: 0 / 0
txt в mdb
    #34005745
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hangkil,
Открой Access, открой в нём базу, создай в ней спецификацию импорта-экспорта, назови её, скажем, "Моя спецификация для текста с пробелом", и используй "DSN=Моя спецификация для текста с пробелом;" в тексте SQL-запроса.
Код на VB/VBA:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 Dim cmd As ADODB.Command
 Set cmd = New ADODB.Command
 cmd.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb"
 cmd.CommandText = "SELECT * INTO [divx] FROM [Text;DSN=Моя спецификация для текста с пробелом;" & _
                   "FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=866;DATABASE=C:\].[logfile#txt]"
 cmd.Execute
 Set cmd = Nothing

P.S. Спецификации хранятся в системных таблицах MSysIMEXSpecs и MSysIMEXColumns (по крайней мере для баз в формате Access 2002).
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / txt в mdb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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