Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.23;
Скачать: CL | DM;

Вниз

Возможно ли такое? Или и нестоит заморачиваться?   Найти похожие ветки 

 
Игорёк Ш.   (2009-06-24 18:36) [0]

Мастера, возможно ли такое. Чтоб во время выполнения приложения в базу данных(clientdataset), Загрузить текстовый файл?


 
Плохиш ©   (2009-06-24 18:38) [1]

В программировании возможно всё.


 
Игорёк Ш.   (2009-06-24 18:38) [2]

Текстовый файл по умолчанию не имеет определённых полей. произвольный текст.


 
Ega23 ©   (2009-06-24 18:39) [3]

В BLOB можно запихать всё.
Ты задачу растолкуй.


 
Игорёк Ш.   (2009-06-24 18:42) [4]

есть текстовый файл. в нём идёт (к примеру) перечисление продуктов.

мясо
рыба
тушёнка ну и т.п.

каждое наименование идёт с новой строки(в текстовом файле). возможно ли запихать в базу, полностью весь текст(из  файла). Если да... То от чего оттолкнуться можно?


 
clickmaker ©   (2009-06-24 18:46) [5]

> запихать в базу, полностью весь текст

в одно поле?


 
Новичок   (2009-06-24 18:51) [6]


> в одно поле?

нет. Каждое наименование в бд с новой строки должно идти.


 
Плохиш ©   (2009-06-24 18:55) [7]


> То от чего оттолкнуться можно?

Надо "оттолкнуться" с помощью чтения букваря по программированию.


 
clickmaker ©   (2009-06-24 18:55) [8]

> [6] Новичок   (24.06.09 18:51)

ну как-то так

StringList.LoadFromFile(FileName);
for i := 0 to StringList.Count-1 do begin
 ClDs.Insert;
 ClDs.FieldByName("ProductName").AsString := StringList.Strings[i];
 ClDs.Post;
end;
ClDs.ApplyUpdates(0);


 
Плохиш ©   (2009-06-24 18:55) [9]


> Каждое наименование в бд с новой строки должно идти.

В "бд" строк нет.


 
Ega23 ©   (2009-06-24 18:56) [10]


> То от чего оттолкнуться можно?
>


1. Загружаем файл.
2. Разбираем его по словам.
3. Грузим каждое в цикле в базу.

Как самый тупой пример:

var
 sl : TStringList;
 i : Integer;
begin
 sl := TStringList.Create;
 try
   sl.LoadFromFile(......);
   for i := 0 to sl.Count -1 do
     Грузить_В_БД(Trim(sl[i]));
 
   
 finally
   sl.Free;
 end;

end;


 
Игорёк Ш.   (2009-06-24 18:57) [11]

спс :))


 
Игорёк Ш.   (2009-06-24 20:13) [12]

в чём проблем-с? в listbox всё нормально заносится а вот в dbgrid в каждую строчку все данные из txt файла?

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
if openDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);  {загружаем в мемо содержимое открытого файла}
Form1.Caption:=ExtractFileName(OpenDialog1.FileName);
begin
  for i := 0 to memo1.Lines.Count-1 do
begin
form1.ClientDataSet1.Edit;
form1.ClientDataSet1name.Value :=trim(memo1.Lines.Text );
form1.ClientDataSet1.Post;
form1.ClientDataSet1.Insert;
end;
end;
      end;

procedure TForm1.Button2Click(Sender: TObject);
var l_iPos : Integer;
       l_sStr : String;
       l_sPiece : String;
       begin
ListBox1.Clear;
l_sStr:=memo1.Lines.Text;
l_iPos:=Pos(" ",l_sStr);
while l_iPos<>0 do begin
   l_sPiece:=Copy(l_sStr,1,l_iPos-0);
   ListBox1.AddItem(l_sPiece,Nil);
   Delete(l_sStr,1,l_iPos);
   l_iPos:=Pos(" ",l_sStr);
end;
ListBox1.AddItem(l_sStr,Nil);
end;

end.


 
Игорёк Ш.   (2009-06-24 20:36) [13]

усё... разобрался


 
MsGuns ©   (2009-06-24 21:30) [14]

Подобные задачки лучше всего решать, ИМХО, следующим образом - импортируешь файл в эксел, простым макросом разбивешь слова на "поля", которые и рассовываешь по колонкам. Далее "автор" текста вдумчиво правит, разнося или, наоборот, собирая названия в "правильные" колонки.
Из экселя готовую таблицу - в базу.


 
Новичок   (2009-06-24 22:29) [15]

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


 
Игорёк Ш.   (2009-06-24 22:29) [16]

вот код

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
if openDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);  {загружаем в мемо содержимое открытого файла}
Form1.Caption:=ExtractFileName(OpenDialog1.FileName);
      end;

procedure TForm1.Button2Click(Sender: TObject);
var l_iPos : Integer;
       l_sStr : String;
       l_sPiece : String;
       begin
memo2.Clear;
l_sStr:=memo1.Lines.Text;
l_iPos:=Pos(" ",l_sStr);
while l_iPos<>0 do begin
   l_sPiece:=Copy(l_sStr,0,l_iPos-1);
form1.ClientDataSet1.Insert;
form1.ClientDataSet1name.Value :=l_sPiece;
   memo2.Lines.AddObject(l_sPiece,Nil);
   Delete(l_sStr,1,l_iPos);
   l_iPos:=Pos(" ",l_sStr);
end;
end;


 
Игорёк Ш.   (2009-06-24 22:33) [17]

толькр один ньюанс возникает перед словом в базе два пробела лишних стоят. Ну думаю разберусь чьё к чему


 
Игорь Шевченко ©   (2009-06-24 23:46) [18]

давить тех, кто для чтения файла кроме мемо ничего не знает


 
Германн ©   (2009-06-25 00:43) [19]


> Игорь Шевченко ©   (24.06.09 23:46) [18]
>
> давить тех, кто для чтения файла кроме мемо ничего не знает

А я уже давно ругаю тут палитру Дельфи. Бо почти все новички видят только первую её вкладку.


 
Плохиш ©   (2009-06-25 10:46) [20]


> Игорь Шевченко ©   (24.06.09 23:46) [18]
>
> давить тех, кто для чтения файла кроме мемо ничего не знает

Баттонокидатели тоже нужны ;-)


 
clickmaker ©   (2009-06-25 12:31) [21]

> Бо почти все новички видят только первую её вкладку

"поступило предложение на порносайтах начинать грузить картинки снизу" (с) не помню, чей



Страницы: 1 вся ветка

Текущий архив: 2009.08.23;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.007 c
15-1245911928
desc
2009-06-25 10:38
2009.08.23
Не получается "слиять" два поля... Postgres


15-1245441575
Step
2009-06-19 23:59
2009.08.23
Служба клиент групповой политики


15-1246048203
Юрий
2009-06-27 00:30
2009.08.23
С днем рождения ! 27 июня 2009 суббота


15-1245730848
@!!ex
2009-06-23 08:20
2009.08.23
Виста не запоминает мониторы.


1-1211444212
MishaLukash
2008-05-22 12:16
2009.08.23
DBGrid цифровая клавиарура ввод десят.запятой