Чтение в определенных строках текстового файла - PullRequest
0 голосов
/ 16 сентября 2010

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

файл примера

USE [Shelley's Other Database]  
CREATE TABLE db.exmpcustomers(  
 fname varchar(100) NULL,  
 lname varchar(100) NULL,  
 dateofbirth date NULL,  
 housenumber int NULL,  
 streetname varchar(100) NULL  
) ON [PRIMARY]

Что мне нужно сделать, так это выяснить, где начинаются мои данные (будучи fname - но помните, что они могут называться как угодно, поэтому я не могу использовать регулярное выражение для поиска 'f'), где они заканчиваются (последний NULL) , тогда читайте в этом. Или, вы знаете, прочитайте в файле и выберите эти данные; что угодно.
Я думал об использовании регулярных выражений для поиска скобок, но разве это не поднимет скобки и в моих типах данных?

Есть идеи? Все поможет, я полностью застрял.

РЕДАКТИРОВАТЬ

Да, в оригинальном файле на самом деле есть пробелы / табуляции перед данными (отступ), но я не уверен, что это что-то меняет.

Ответы [ 2 ]

2 голосов
/ 16 сентября 2010

Я бы просто пересмотрел данные жадного совпадения в скобках.Пока ) не следует за ON, а ( не предшествует CREATE, круглые скобки в содержании не имеют большого значения.

Если вы не слишком хорошо знаете сценарии SQL,это хорошая идея выставлять контроль другим людям?Почему бы не создать простой DSL, который дает те же преимущества?Например:

DATABASE databasenamegoeshere
TABLE tablenamegoeshere
FIELD name type default
FIELD name type default
FIELD name type default

И затем перевести это в соответствующий код SQL?Кажется, немного более безопасным .. Или это должен быть исполняемый SQL?

0 голосов
/ 16 сентября 2010

регулярное выражение, которое я указал в вашем другом вопросе, будет идеально соответствовать вашим данным.Ваш вопрос на самом деле является дубликатом другого.

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