|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
отображение txt в datagrid. помогите разобраться
Здравствуйте. Всё никак не могу справится с задачей: "Необходимо считать данный из txt (разделены символами табуляции) и отобразить в datagrid". Перерыл кучу форумов но всё равно топчусь на месте.
Планирую сделать так: 1)считывание построчно из файла 2)разборка строки по полям 3) занесение в dataset/clientdataset/table (не знаю что лучше, подскажите) 4)сортировка в dataset/clientdataset/table 5)отображение в datagrid столкнулся со следующими трудностями. 1)у меня вся обработка файла и заполнение dataset вынесена в отдельный юнит. Там я пытаюсь программно создать dataset, наделить его полями, отфильтровать и передать его в юнит с формой для datasourse. так вот Код:
DS:=TClientDataSet.Create(???); 2)пробовал программно создать простую TClientDataSet и опять же программно передать TClientDataSet в datasourse. Но что то изменений нет никаких в datagrid (в datagrid1 параметр datasourse = datasourse1; в datasourse1 параметр dataset=ClientDataSet1 (та что создаются программно) ) может не хватает каких то ещё команд? типа обновить что-то из этой цепочки..или может что-то закрыть или открыть надо предварительно.. заранее спасибо. буду очень благодарен, за похожие примеры или исходники. весь код Код:
unit Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Handling, Vcl.Grids, Data.DB, Datasnap.DBClient, Vcl.DBGrids, Bde.DBTables; type TForm1 = class(TForm) BtnOpen: TButton; BtnProcess: TButton; OpenDialogTxt: TOpenDialog; DBGrid1: TDBGrid; DataSource1: TDataSource; ClientDataSet1: TClientDataSet; procedure BtnOpenClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BtnOpenClick(Sender: TObject); begin OpenDialogTxt:= TOpenDialog.Create(self); OpenDialogTxt.Filter:='txt files|*.txt'; if OpenDialogTxt.Execute then begin DataSource1.DataSet:=HandleTxt(OpenDialogTxt.FileName,'|'); DBGrid1.Update; end else ShowMessage('Error'); OpenDialogTxt.Free; end; end. Код:
unit Handling; interface uses Winapi.Messages, System.SysUtils, Vcl.Dialogs,Data.DB,Vcl.Grids, Datasnap.DBClient, Vcl.DBGrids, Bde.DBTables; var ftxt:TextFile; num_lines:integer=0; separator:string; DS: TClientDataSet; function HandleTxt(path:TFileName;_separator:string):TClientDataSet; implementation function HandleTxt(path:TFileName;_separator:string):TClientDataSet; var line:string; I:Integer; begin separator:=_separator; AssignFile(ftxt, path); reset(ftxt); DS:=TClientDataSet.Create(nil); DS.FieldDefs.Add('id', ftInteger); DS.FieldDefs.Add('nick', ftString, 20); DS.FieldDefs.Add('note', ftString, 40); DS.CreateDataSet; // While not (Eof(ftxt)) do // begin // ReadLn(ftxt,line); // // end; result:=DS; end; procedure StrToRow(str:string); begin end; end. Последний раз редактировалось Unkeep, 08.01.2013 в 03:04. |
#2
|
|||
|
|||
? ? ? ? ? ? ?
Последний раз редактировалось Unkeep, 08.01.2013 в 03:14. |