Как я могу прочитать в файле TXT в Access, который превышает 255 символов / строка и содержит контрольный символ? - PullRequest
0 голосов
/ 23 ноября 2018

Я использую Access 2010. Мне нужно прочитать текстовый файл в строку.Каждая строка может быть длиной от 40 до 320 символов, заканчиваясь символом CR.Самая большая проблема заключается в том, что файл TXT различных строк содержит запятую (,) и кавычки (") как часть данных.

Есть ли хитрость для этого? Даже если он получает каждый символ и тестируетчтобы увидеть, если это CR ....

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Из вашего сообщения неясно, можете ли вы - или пытались - использовать инструменты, доступные в продукте, для этой задачи.Access 2010 предлагает ссылки на файл .txt, а также добавление файла .txt в таблицу.Это стандартные функции на вкладке «Внешние» ленты.

Тип поля «Большой текст» (ранее «Заметка») допускает символы ~ 4K.Не уверен, если вы хотите попытаться ввести все данные TXT в одно поле - если это так, то этот предел важен.

Если CR текстового документа подразумевают новую запись / строку данных - скореечем непрерывная строка для всего документа - И - - - если есть какая-либо непротиворечивая структура во всех строках данных - тогда мастер импорта может использовать либо количество символов, либо символы (т. е. запятую, если они существуют) - в качестве средства для разделения/ разделить каждую отдельную строку данных в отдельные поля в одной строке таблицы.

0 голосов
/ 27 ноября 2018

Для выполнения этой задачи вам потребуется написать собственный код импорта, который будет считываться непосредственно из файла.Функции импорта Microsoft Access не будут хорошо обрабатывать файл, подобный этому, и, поскольку вы хотите проанализировать каждую строку в коде, лучше обрабатывать чтение самостоятельно.

Существует множество подходов, которые вы можете использовать, ивсе будет включать файловые дескрипторы и открытие файла.Но лучший подход - использовать класс, который сделает всю грязную работу за вас.

Одним из таких классов является класс LargeTextFile, который можно найти в любом из Справочников разработчика Microsoft Access (Том 1) для Access 97, 2000, 2002 или 2003, написанный Getz, Litwin и Gilbert (Sybex), если у вас есть доступ к одному из них.

Другим вариантом будет класс clsReadTextFile, доступный длябесплатно на сайте Access MVP (The Access Web) * сайт 1010 *:

http://www.theaccessweb.com/downloads/clsReadTextFile.txt

Используя clsReadTextFile, вы можете обрабатывать свой файл построчно, используя подобный кодна это:

Dim file As New clsReadTextFile
Dim line As String

file.FileName = "C:\MyFile.txt"

file.cfOpenFile

Do While Not file.EndOfFile
    file.csGetALine
    line = file.Text
    If InStr(line, "MySearchText") Then
        'Do something
    End If
Loop
file.cfCloseFile

Строковая переменная line будет содержать текст только что прочитанной строки, и вы можете написать код, чтобы проанализировать его так, как вам нужно, и обработать его соответствующим образом.Затем цикл перейдет к следующей строке.Это позволит вам обрабатывать каждую строку файла вручную в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...