Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
из текстового файла в таблицу (Фролов Сергей) 15/05/2009 - 01:35:20
      Re: из текстового файла в таблицу (Фролов Сергей) 15/05/2009 - 04:02:21
      Re: из текстового файла в таблицу (Виталий) 18/05/2009 - 12:42:03



From: Фролов Сергей - 15/05/2009 - 01:35:20
Subject:из текстового файла в таблицу
-----------------
Вопрос у меня следующий...
Есть БД на MySQL. Пишу прогу на Delphi. Мне нужно из текстового файла (логи) перенести все элементы строк в соответствующие поля таблицы, предварительно подкорректировав их (убрать не нужные пробелы и лишние запятые, которые будут потом являться разделителями элементов строк). Просматриваю результаты этих корректировок в МЕМО и сохраняю в отдельный файл. Вроде похоже на правду.... Но когда я пытаюсь импортировать содержимое результирующего файла в таблицу БД, то либо оно переносит только первую строку (командой load data infile 'c:/text_rez.txt' into table temp_CDR fields terminated by ',' lines terminated by '\t';), либо (по команде load data infile 'c:/text_rez.txt' into table temp_CDR fields terminated by ',' lines terminated by '\r\n';) MySQL выдает ошибку: ERROR 1261 (01000): Row 2 doesn't contain data for all columns и вообще ничего не копирует.
Я грешу на неправильные указатели CR и начала новой строки.
Когда я просматриваю записи в таблице после "удачного" копирования первой строки в базу, то в самом последнем столбце, соответствующему последнему элементу в исходной строке,
то последними символами этого элемента дописываются либо точка какая-то, либо непонятная закорючка (все зависит от того, какой ключ я применяю в самом конце SQL запроса: '\r', '\n' '\t' и так далее...). Или они одновременно оба дописываются...
Просматриваю записи под Виндой в MySQL Query Browser
Может сможете подсказать, какие ключи указателей мне нужно поставить в программе, чтобы запрос MySQL правильно их воспринимал

Если поможет - кусок проги с разбором текстовых файлов:
procedure TForm1.Button1Click(Sender: TObject);

//определяем символы-разделители
const DelSym = ' ';
var Text: string; i: integer; Word: string;
begin
Text:=Memo1.Lines.Text;

for i := 1 to Length(Text) do
if Pos(Text[i],DelSym) > 0 then
Text[i]:=',';
if Text[1] = ',' then
Delete(Text,1,1);
//удаляем двойные запятые
while Pos(',,',Text) > 0 do
Delete(Text,Pos(',,',Text),1);
//Удаление указателей возврата каретки #13 и начала //новой строки #10
//while Pos(Chr(13),Text) > 0 do
//Delete(Text,Pos(Chr(13),Text),1);

while Pos(Chr(10),Text) > 0 do
Delete(Text,Pos(Chr(10),Text),1);

Memo2.Text:=Text;

SaveDialog1.InitialDir:='c:'; //сохраняем файл результатов
if SaveDialog1.Execute then
Memo2.Lines.SaveToFile(SaveDialog1.FileName);



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35595



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |