Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение из текстового файла в DOS кодировке и запись в базу / 15 сообщений из 15, страница 1 из 1
22.04.2008, 14:41
    #35271441
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
Нужна помощь
Есть много однотипных текстовых файлов (содержимое файлов - таблица с заголовком). Нужно обтаботать все файлы и вытащить из них название таблицы из заголовка и несколько данных из таблицы (все позиции в файле этих данных неизменяемы, то есть читаем с 4 по 20 символа в 5 строке, и так во всех файлах). Все полученное записать в базу.
Вопросы:
1. Как обработать сразу все файлы в входящей директории? Цикл какой-нить использовать?
2. Как прочитать файл в DOS кодировке?
3. Как прочитать в файле данные с определенной позиции?

Спасибо зараннее за любой совет или ссылку.
...
Рейтинг: 0 / 0
22.04.2008, 15:12
    #35271560
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
если тхт файлы в формате бд и в одноь директории то получать данные из файлов можно через ADO
в качестве таблицы используеться имя файла
например
tabl1.txt
tabl2.txt
tabl3.txt
получить можно используя рекорсет с запросом
http://]SELECT *
FROM tbl1.txt, tbl2.txt
позицианироваться с помощью метода Move об. ADO
...
Рейтинг: 0 / 0
22.04.2008, 15:12
    #35271562
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
TIKOесли тхт файлы в формате бд и в одноь директории то получать данные из файлов можно через ADO
в качестве таблицы используеться имя файла
например
tabl1.txt
tabl2.txt
tabl3.txt
получить можно используя рекорсет с запросом
http://]SELECT *
FROM tbl1.txt, tbl2.txt
позицианироваться с помощью метода Move об. ADO
Код: plaintext
1.
SELECT *
FROM tbl1.txt, tbl2.txt
...
Рейтинг: 0 / 0
22.04.2008, 15:17
    #35271577
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
А если я заранее не знаю, сколько будет файлов и как они будут называться?
...
Рейтинг: 0 / 0
22.04.2008, 15:24
    #35271601
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
N_A_T_K_AА если я заранее не знаю, сколько будет файлов и как они будут называться?
Тогда или FSO или ADOX
...
Рейтинг: 0 / 0
22.04.2008, 15:25
    #35271608
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
ну не все так плохо.
можно через OpenSchema получить список всех таблиц этой директории
...
Рейтинг: 0 / 0
22.04.2008, 15:32
    #35271647
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
Кроме того формат файлов - не база данный. Вид фалов такого плна

Март,2006

Иванов | 2223 | 12 | 485
Петров | 565 | 45 | 56
...
Рейтинг: 0 / 0
22.04.2008, 15:33
    #35271650
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
А по поводу DOS кодировки можете что-то подсказать?
...
Рейтинг: 0 / 0
22.04.2008, 15:42
    #35271703
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
через специальный схема-файл это делается :

SCHEMA.INI файлик в директории ваших текстовых табличек:

[1.txt]
ColNameHeader=True
Format=TabDelimited
CharacterSet=ANSI
MaxScanRows=0
[2.txt]
ColNameHeader=True
Format=TabDelimited
CharacterSet=OEM
MaxScanRows=0
...
Рейтинг: 0 / 0
22.04.2008, 16:10
    #35271826
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
TIKOесли тхт файлы в формате бд и в одноь директории то получать данные из файлов можно через ADO
в качестве таблицы используеться имя файла
например
tabl1.txt
tabl2.txt
tabl3.txt
получить можно используя рекорсет с запросом
http://]SELECT *
FROM tbl1.txt, tbl2.txt
позицианироваться с помощью метода Move об. ADO

Спасибо, но все таки эти файлы-не база и метод Move для позиционирования не подходит
...
Рейтинг: 0 / 0
22.04.2008, 16:12
    #35271842
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
Konst_Oneчерез специальный схема-файл это делается :

SCHEMA.INI файлик в директории ваших текстовых табличек:

[1.txt]
ColNameHeader=True
Format=TabDelimited
CharacterSet=ANSI
MaxScanRows=0
[2.txt]
ColNameHeader=True
Format=TabDelimited
CharacterSet=OEM
MaxScanRows=0


Спасибо Konst_One. Идея хорошая для моей другой задачи. Только нужно придумать как его прикрутить.
...
Рейтинг: 0 / 0
22.04.2008, 16:16
    #35271865
N_A_T_K_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
N_A_T_K_AКроме того формат файлов - не база данный. Вид фалов такого плна

Март,2006

Иванов | 2223 | 12 | 485
Петров | 565 | 45 | 56



Как прочитать из такого txt-файла в DOS кодировке название таблици и фамилию Иванов и число в 3 стоблце?
...
Рейтинг: 0 / 0
22.04.2008, 16:21
    #35271889
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
если открываете через ADO вот так:

Код: plaintext
1.
ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=5;Extensions=log,txt;" & _
                    "DBQ=c:\temp;DefaultDir=c:\temp;"
...
Рейтинг: 0 / 0
22.04.2008, 16:22
    #35271899
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
SCEMA.INI создайте заранее до открытия соединения
...
Рейтинг: 0 / 0
22.04.2008, 16:25
    #35271911
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение из текстового файла в DOS кодировке и запись в базу
Код: 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.
Public Sub MakeSchema(ByVal FileName As String, ByVal Ext As String)
Dim s As String
Dim sFile As String
Dim ss As String
Dim sPath As String

    sPath = modFiles.FileGetPath(FileName)
    sFile = sPath & "SCHEMA.INI"
    ss = Dir(sPath & "*.*")
    Do
        If ss = "" Then Exit Do
        FileName = sPath & ss
        Ext = VBA.LCase$(modFiles.FileGetExtension(FileName))
        Select Case Ext
        Case "txt", "log"
            s = modFiles.FileGetNameOnly(FileName) & ".txt"
            If Ext = "log" Then
                modFiles.ProfileSetString s, "ColNameHeader", "False", sFile
            Else
                modFiles.ProfileSetString s, "ColNameHeader", "True", sFile
            End If
            modFiles.ProfileSetString s, "Format", "TabDelimited", sFile
            modFiles.ProfileSetString s, "CharacterSet", "ANSI", sFile
            modFiles.ProfileSetString s, "MaxScanRows", "0", sFile
        Case Else
        End Select
        ss = Dir()
    Loop
        
End Sub

у меня такая процедурка создает файл схемы (кое-что берется из настроек в реестре, вы уж сами там подставьте, что вам надо)
PS
это я про OEM, делимитер и тд
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение из текстового файла в DOS кодировке и запись в базу / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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