powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите организовать импорт данных из *.txt со сложной структурой
24 сообщений из 99, страница 4 из 4
Помогите организовать импорт данных из *.txt со сложной структурой
    #32528782
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Fat Lamer - ого! Замах оценил. На форму с таймером меня уж точно не хватит, а вот письмо прочитать и по сабжу аттач вылить - заманчиво. Можно пару строк на access как это выглядеть должно?
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32528822
Fat Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кода сейчас под рукой нет, может быть в понедельник выложу. С почтой работал через сторонний компонент JMail4. К нему идет отличный хелп - из него практически все и выдрал.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32528873
Fat Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел, выбросил из него часть проверок, но суть, надеюсь будет ясна:

Код: plaintext
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.
....

If IsConnectedToInet Then 'есть ли соединение с Нетом'

Set pop3 = CreateObject("Jmail.POP3")
Set msg = CreateObject("JMail.message")

On Error GoTo MailError

pop3.connect Me.account, Me.pass, Me.server 'соединяемся'
If pop3.Count <>  0  Then ' а есть ли письма?'

For I =  1  To pop3.Count
Set msg = pop3.Messages.Item(I)
subj = msg.subject

    
    If subj= "МояТемаПисьма" Then
    Set ats = msg.attachments
        If ats.Count =  1  Then
        Set at = ats( 0 )
            subj = at.Name 
                'ф-ция PartName отрезает расширение'
                subj = Me.Поле9 & PartName(at.Name) & ".rar"
                at.savetofile subj
		'Поле13 - полный путь к RAR'у
                CommLine = Me.Поле13 & "rar.exe e -o+ " & subj & " " & Me.Поле11
                ExecCmd (CommLine)
                
         End If
            
    End if	
Next I 
pop3.Disconnect

End If 'pop3.Count<>0'


End If 'IsConnectedToInet'

............

...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32528914
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Fat Lammer - ехарныйбиллигейтс! Вот это действительно круто. Это мне еще впитать бы. Но прилеплю обязательно. А вот проще задача не двигается: завел табличку типа лог-а: дата вкачки, имя вкаченного файла
Взял в стринг переменную имя файла. Как правильно ходилку-проверялку сваять, а? Типа шагнул на запись, сверил с полем если да - то ай!, если нет то дальше до конца цикла. Я тут по аське madg580 уже плачусь, что делал такое однажды давно. Обычно то запросик и вот результат.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32529179
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это просто.
имеем tlog- таблицу, в ней поле Fname- имена файлов

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim strFileName As String
strFileName = "aaaaa.rar"
If IsNull(DLookup("Fname", "tlog", "[Fname]='" & strFileName & "'")) Then
  'нет такого - делаем распаковку
Else
MsgBox "Это уже сливали!", vbCritical
End If
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32529192
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу разахивирования
объявим
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
и сделаем функцию

Код: plaintext
1.
2.
3.
4.
5.
6.
Public Function fnShortPathName(fname As String)
Dim shortname As String  ' строка для короткого имени
Dim slength As Long  ' длина короткого имени файла
shortname = Space( 255 )  ' создаем место в буфере для короткого имени файла
slength = GetShortPathName(fname, shortname, 255)
fnShortPathName = Left(shortname, slength)  ' извлекаем строку из буфера
End Function
Это нужно для конвертирования длинного имени файла в формат досовский формат 8.3 - иначе многие архиваторы в командной строке не понимают.

Вот пример извлечения winrar'oм в папку, где находится база
ArchiveName - полное имя архива с путем
Код: plaintext
1.
Shell "E:\Program Files\WinRAR\winRAR.exe e " & fnShortPathName(ArchiveName) &  _ 
" " & fnShortPathName(CurrentProject.Path) & "\"
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32529553
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И предупреждая следующий вопрос.
Нужно ведь дождаться конца работы архиватора и определить, что он уже отработал - это сюда
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32530149
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем огромадное! Слепил почти все. Осталось красоту навести. И можно браться за слив из мыла, как Fat Lamer предложил. 2Alexander G - вместо того чтобы тож взяться за пиво я решил наморщить что есть и создал такой код:

chk = 0
For x = 1 To rst.RecordCount
If rst![FileName] = vFileName Then
chk = chk + 1
End If
rst.MoveNext
Next

If chk = 0 Then
' èìÿ íîâîå, âíîøó çàïèñü â Log
rst.AddNew
rst![FileName] = vFileName
rst.Update

Else
MsgBox ("Get out!")
End If

Приятно узнать что есть DLookup, который экономит время для более приятного его препровождения :-)
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533457
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорабатываю красоту конвертера, так что вопрос не в тему но из нее: как очистить таблицу по возможности короче? Делаю временную, куда заливаю, потом проверяю и переливаю в основной архив. Умею запускать запрос на удаление,но он просит подтверждение да и как-то несерьезно это. Можно как-то проще сделать типа Таблица.УдалиВсе ?
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533461
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что значит просит подтверждение?

currentdb.execute "delete * from mytable" - просит?
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533468
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, это не просит. Ура, я чувствовал,что это очень просто делается. Спасибо! Просто в итоге у меня получился конгломерат таблиц и запросов, которые работают, но все вручную. Вот взялся собрать все в одном коде. И выяснилось, что уже не умею я запросы в модуль вставлять. Запускал готовый, потому он и просил подтверждение на удаление записей. А как поизящнее запустить запрос на слив из одной таблицы в другую, у которой только имена полей отличаются?

Запрос такой получается:

INSERT INTO _Taxak ( Идентификатор, [Номер участка], [Код сбора], Процент, Сумма )
SELECT imp_Taxak.Поле1, imp_Taxak.Поле2, imp_Taxak.Поле3, imp_Taxak.Поле4, imp_Taxak.Поле5
FROM imp_Taxak;
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533470
madg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не просит!
Сносит в момент, к чертям .....
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533476
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Запрос как запрос. В чем проблема-то?
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533481
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну он вручную то запускается, а как его в модуль текстом запихать? Помню что делал я это как-то в прошлой жизни, читаю хэлпы и никак чегой-то не нахожу. У Access2000 хэлп уж больно навороченный, сам в инет лазит, сам чего-то ищет, пока продерешься - полдня уйдет. Вот. И кстати - по поводу FileDialog, - а как проверить что нажата кнопка отмены?

Set dlgOpen = Application.FileDialog(msoFileDialogOpen)

With dlgOpen
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Архивы Сирены", "*.tgz; *.tar", 1
.Show
For Each vrtSelectedItem In .SelectedItems
FullPath = Trim(vrtSelectedItem)
Next vrtSelectedItem
End With

если жмем отмену, но продолжается остальной код программы а мне бы выйти GoTO на конец, потому как от выбора файла все пляшет.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533488
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А способ, который я предложил в 21:27, почему не годится?
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533495
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, я сначала пост нажал, а потом подумал. Отлично годится, попробовал - все ок. Там проблема совсем глупая была - текст запроса длинный,хотел его побить на куски типа "Select something _ from nothing" и выдать не понял техники, компилятор упорно хотел видеть у селекта нормальный конец фразы. Ладно, для чего-то же придуманы полосы прокрутки. Саныч, а как с FileDialog-ом быть, а? Некрасиво выходит, отмена ошибку вызывает.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533499
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Длинные строки можно разбивать так:

"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

С FileDialog'ом я не работал, могу только предложить On Error Resume Next. :^)
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533514
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, On Error Resume Next - это вообще как приладить-то?
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533515
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Перед обращением к FileDialog'у.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533520
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ха! Сделал On Error GoTo NothingToDo и как в бэйсике - вознесся в конец текста! Вообще, сижу - любуюсь, так все хорошо у меня сливается и разливается!
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533524
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Дык это и есть Бейсик... Что работало там, в основном работает и тут.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533541
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А! Ну - да. У меня с института осталось впечатление что goto и бейсик это что-то неприличное. Вижуал как-то по другому воспринимается.
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533545
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GoTo действительно не принято использовать. Но оно все равно в Аксессе работает...
...
Рейтинг: 0 / 0
Помогите организовать импорт данных из *.txt со сложной структурой
    #32533598
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу отмены я писал на предыдущей странице

Set dlgOpen = Application.FileDialog(msoFileDialogOpen)

With dlgOpen
if .Show=-1 then
'ляляляля
else
exit function 'или sub, что там нужно
end if
End With
...
Рейтинг: 0 / 0
24 сообщений из 99, страница 4 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите организовать импорт данных из *.txt со сложной структурой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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