powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как собрать базу по кусочкам ? (txt, asc -> mdb)
7 сообщений из 7, страница 1 из 1
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32445600
HoTicE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. комне приходят файлы след. вида:
2004031716850800.txt
2004031716851000.txt
2004031716851200.txt
2004031716860800.txt
2004031716861000.txt
2004031716861200.txt

в каждом файле строка вида:
1745 13

надо собрать все в одну таблицу вида
id - счетчик
time - из имя файла - 0800 - 1, 1000-2 и т.д.
area - из имя файла
total,income - в файле

id time area total income
1 1 1685 1745 13
2 2 1685 1745 23
3 3 1685 1745 35
4 1 1686 1860 33
5 2 1686 1860 44
6 3 1686 1860 55

есть ли в access такой инструмент, и можно ли это дело автоматизировать - скажем что бы он собирал это каждые n минут/секунд ?

плиз помогите, срочно !

может кто знает менее извратные способы - подскажите pls!
...
Рейтинг: 0 / 0
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32445690
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А эти файлы приходят и хранятся в одной папке?
ты знаешь имя каждого последующего файла, который должен прийти?
...
Рейтинг: 0 / 0
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32445909
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
Option Compare Database

Dim id As Integer
Dim area As Integer
Dim cnn As ADODB.Connection
Dim rst As New ADODB.Recordset
Dim dtTotal As Integer
Dim dtIncom As Integer

Public Sub ListFilesReload()
Dim i As Integer

For i =  1  To Список10.ListCount
   Список10.RemoveItem ( 0 )
Next i

With Application.FileSearch
    .NewSearch
    .LookIn =  "o:\iii\"  'Директория с файлами'
    .SearchSubFolders = False
    .FileName =  "*.*" 
    .MatchTextExactly = True
End With
With Application.FileSearch
    If .Execute() >  0  Then
        For i =  1  To .FoundFiles.Count
        Список10.AddItem Item:=Replace(.FoundFiles.Item(i),  "c:\windows\" ,  "")
        Next i
    End If
End With
Call xxx
End Sub

Private Sub Кнопка20_Click()
   Call ListFilesReload 'Это и есть запуск всей функции'
End Sub

Public Function xxx()

Set cnn = CurrentProject.Connection
rst.Open " Таблица1 ", cnn, adOpenKeyset, adLockPessimistic

For i = 0  To Список10.ListCount -  1 
   With rst
      .AddNew
      !id = DMax("id ", " Таблица1 ") + 1 
      !fldTime = dtDate(Список10.ItemData(i))
      FileProcess (Список10.ItemData(i))
      !area = Mid(Список10.ItemData(i), Len(Список10.ItemData(i)) -  11 ,  4 )
      !total = dtTotal
      !incom = dtIncom
      .Update
   End With
Next i

End Function



Public Function dtDate(FileName As String) As Date

   dtDate = DateSerial(Mid(FileName, Len(FileName) -  19 ,  4 ), Mid(FileName, Len(FileName) -  15 ,  2 ), Mid(FileName, Len(FileName) -  13 ,  2 )) _
& " " & TimeSerial(Mid(FileName, Len(FileName) -  7 ,  2 ), Mid(FileName, Len(FileName) -  5 ,  2 ),  0 )

End Function



Private Function FileProcess(ByVal FName As String)

Dim FHandle As Integer, GetStr As String
FHandle = FreeFile
Open FName For Input As FHandle
Do Until EOF(FHandle)
Line Input #FHandle, GetStr

   dtTotal = Left(GetStr,  4 )
   dtIncom = Right(GetStr,  2 )

Loop
Close FHandle

End Function


Соответственно, нужна форма, список "Список10" и кнопка для запуска...
Попоробуй...корявенько конечно (быстренько)...
...
Рейтинг: 0 / 0
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32445922
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно у телефонной станции есть COM - порт
и нет нужды висеть сторонней проге и генерить файлы а потом еще и собирать это все своей...
...
Рейтинг: 0 / 0
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32446408
HoTicE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vlad_707
Да, все файлы в одной папке и я знаю (точнее на лету могу вычислить) какие у них будут имена.
...
Рейтинг: 0 / 0
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32446409
HoTicE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deminik Обязательно попробую, результаты скажу, спасибо!
...
Рейтинг: 0 / 0
Как собрать базу по кусочкам ? (txt, asc -> mdb)
    #32446419
HoTicE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Deminik
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
With Application.FileSearch
    If .Execute() >  0  Then
        For i =  1  To .FoundFiles.Count
        harvList.AddItem Item:=Replace(.FoundFiles.Item(i),  "c:\windows\" ,  "")
ругается на эту строчку, говорит: Run-time error '6014'
Для применения данного метода необходимо задать значение " Список значений " для свойства " Тип источника строк" (RowSourceType).

        Next i
    End If
End With
Call xxx

Next i
With Application.FileSearch


harvList = список10
приэтом файлы в нужной папке находит, о чем свидетельствует значение foundfiles.count и foundFiles.item(i)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как собрать базу по кусочкам ? (txt, asc -> mdb)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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