2010-09-16 4 views
0

Да, я уже задал этот вопрос, но проблема более конкретна. В прошлый раз я хотел проигнорировать первые 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), затем читайте в этом. Или, вы знаете, прочитайте в файле и выберите эти данные; без разницы.
Я думал об использовании регулярных выражений, которые ищут скобки, но разве он не заберет скобки в моих типах данных?

Любые идеи? Что-нибудь поможет, я полностью застрял.

EDIT

Ох, и исходный файл на самом деле имеет пробелы/вкладки перед данными (отступы), но я не уверен, что изменения ничего.

+0

Это * * дубликат http://stackoverflow.com/questions/3718112/is-there-any-way-to-ignore-reading-in-certain-lines-in-a-text-file – chiccodoro

ответ

0

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

+0

Yep , Я вижу это сейчас. Дурак я. Теперь у меня есть проблема, думаю, вы могли бы помочь мне? –

+0

@New Start: Конечно, о чем проблема сейчас? Если это новый, просто создайте новый вопрос. Если это еще касается этой темы, я бы предложил вернуться к http://stackoverflow.com/questions/3718112/is-there-any-way-to-ignore-reading-in-certain-lines-in-a- текстовый файл и отредактируйте свой вопрос там/оставьте комментарий – chiccodoro

2

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

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

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

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

+0

+1 Хотя это и не идеально, это маршрут, который я, вероятно, пойду – w69rdy

+0

Я устал делать это, так как я не совсем понимаю сценарии SQL, и я не знаю, должны ли все SQL-скрипты (этого типа) писал так. Хотя я предполагаю, что они это делают. Например, данные должны быть заключены в скобки. –

+1

Да, это не идеально. У меня недостаточно опыта работы с SQL, чтобы быть уверенным, что в другом месте нет возможных скобок. Вы всегда можете извлекать каждую часть данных в круглых скобках, а затем прокручивать каждый из них в поисках того, который содержит «NULL» или какое-то другое гарантированное ключевое слово? Немного более прочный, но, помимо этого, вы должны, вероятно, изучить некоторый интерпретатор SQL. – Jeriko

Смежные вопросы