Импорт текста с разными разделителями

Valerievna
Дата: 14.12.2011 16:23:29
Уважаемые форумчане, есть ли несложный способ импортировать txt такого вида

#tme251#M_11(16_11)	4PAC12CT013_XH03<;4PAC12AP001A_03;4PAC12AP001B_03;
#tme251#M_11(400_1)	4PAC12CT019_XH03<;4PAC12AP001A_03;4PAC12AP001B_03;
#tme251#M_108(710_13)	4PAA21EE001_XA02;4PAA21EE001_01;
#tme251#M_108(801_1)	4PAA12CL002_XH02;4PAA12CL002_03;
#tme251#M_111(14_14)	4PAC21CT010_XH03<;4PAC21AP001A_03;4PAC21AP001B_03;


в 
[src]Поле1      Поле2
4PAC12CT013   XH03
4PAC12CT019   XH03
4PAA21EE001   XA02
4PAA12CL002   XH02
4PAC21CT010   XH03
Владимир Саныч
Дата: 14.12.2011 16:30:08
dim f as integer, s as string, i as integer
f=freefile
open "c:\..." for input as #f
do until eof(f)
line input #f, s
i=instr(s,chr(9))
msgbox mid(s,i+1,11)
msgbox mid(s,i+13,4)
loop
close #f
Valerievna
Дата: 14.12.2011 16:41:18
Владимир Саныч,

кхм, msgbox? что-то страшное выводится
наверное я недостаточно правильно сформулировала вопрос:
Импорт из текстого файла осуществляется в таблицу Access(пусть уще существующую) и имеет вид:

          Поле1    Поле2
        4PAC12CT013   XH03
        4PAC12CT019   XH03
        4PAA21EE001   XA02
        4PAA12CL002   XH02
        4PAC21CT010   XH03
непоймучка
Дата: 14.12.2011 16:54:31
Valerievna
Владимир Саныч,

кхм, msgbox? что-то страшное выводится
наверное я недостаточно правильно сформулировала вопрос:
Импорт из текстого файла осуществляется в таблицу Access(пусть уще существующую) и имеет вид:

          Поле1    Поле2
        4PAC12CT013   XH03
        4PAC12CT019   XH03
        4PAA21EE001   XA02
        4PAA12CL002   XH02
        4PAC21CT010   XH03
Владимир Саныч использовал MsgBox чтобы визуально (для вас) показать результат извлечения нужных вам ЧАСТЕЙ СТРОК исходного файла, сделанного при помощий функций Mid и Instr. Иначе говоря, вам таким образом порекомендовали использовать функции Mid и Instr для разбора строки.

А для ЗАПИСИ полученных частей строк в поля вашей таблицы, естесственно, надо использовать вместо MsgBox более другие конструкции. Например, можно открыть Recordset на основе вашей таблицы и записывать в этот рекордсет полученные части строк, используя свойства и методы объекта Recordset.
Анатолий ( Киев )
Дата: 14.12.2011 17:05:15
Если задача разовая, то можно загрузить этот файл в Excel. Там есть возможность указать несколько разделителей и отбросить ненужные столбцы. Если б символ "_" встречался только в одном месте, то результат получился бы сходу (почти). У меня получилось залить один столбец с данными вида "4PAC12CT013_XH03". Разделить его на 2 части можно либо функциями Excel, либо сохранить в другом TXT файле и снова загрузить, указав разделитель "_".
А уж из Ёкселя залить в Акс - проблем нет.
Valerievna
Дата: 14.12.2011 17:11:57
Анатолий ( Киев ),

к сожалению она не разовая, вот хочется узнать можно ли несколько разделителей вводить
Valerievna
Дата: 14.12.2011 17:15:31
непоймучка,

с рекордсэтом плохо дружу пока еще(((
Akina
Дата: 14.12.2011 17:41:40
Valerievna
к сожалению она не разовая, вот хочется узнать можно ли несколько разделителей вводить

Нельзя.
Вот только я рекомендую не решать нерешаемую проблему, а подойти к процессу иначе.

Действие первое - импорт файла во временную таблицу. Всю строку в одно поле.
Действие второе - создание запроса, выполняющего необходимый парсинг в новую или существующую таблицу.
Действие третье - выполнение этого запроса.
Действие четвёртое - удаление временной таблицы.
Действие пятое - оформление этой последовательности действий в виде одного макроса.
Akina
Дата: 14.12.2011 17:44:45
Впрочем, если структура всегда именно такая - первое поле идёт с 21 символа строки и имеет длину 11 символов, а второе - с 33 исмвола длиной 4 символа - просто создайте свою спецификацию импорта и используйте именно её.
Valerievna
Дата: 14.12.2011 18:00:33
Akina,

нет, структура непостоянна, надо пробовать 1-й вариант