Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как использовать потоки для быстрого чтения текстового файла?


Страницы:   1 2

TInteger ©   (2013-09-17 12:16:00) 

Привет мастера! Подскажите плиз как быстро прочитать текстовый файл построчно в StringGrid(одна колонка)? Нагуглил что использование потоков ускорит дело, но понятного мне примера не нашел :( И еще не пониманию что лучше применить TFileStream или TSringStream?


TInteger   (2013-09-17 14:40:00) [21]

StringGrid1.Cols[0] :=  fileList;
[DCC Error] Unit1.pas(338): E2003 Undeclared identifier: 'cols'
вернее :)


TInteger   (2013-09-17 14:39:00) [22]

StringGrid1.Cols[0] :=  fileList;
[DCC Error] Unit1.pas(338): E2003 Undeclared identifier: 'col'
:(


TInteger   (2013-09-17 14:34:00) [23]

Файл точно есть. Не читает потому что не заполняется грид. (ХЕ5,андроид приложение) Как применить чтение потоком из файла в грид?


[ВладОшин]   (2013-09-17 14:30:00) [24]

Странно, у меня читает. А как определил, что не читает?

А можно так
  StringGrid1.RowCount := fileList.Count;
  StringGrid1.Cols[0] :=  fileList;
вместо
//   for i:= 0 to fileList.Count-1 do Form1.sg1.Cells[0,i]:= fileList[i];

TC := GetTickCount;
fileList:= TStringList.Create;
try
  fileList.LoadFromFile('D:\a.txt'); // файло 4 метра
  StringGrid1.RowCount := fileList.Count;
  StringGrid1.Cols[0] :=  fileList;
finally
  fileList.Free;
end;
ShowMessage( IntToStr(GetTickCount - TC) );

47 тиков


Anatoly Podgoretsky   (2013-09-17 14:26:00) [25]

> TInteger  (17.09.2013 13:48:06)  [6]

В текущем положение нет файла 'text.txt'


TInteger   (2013-09-17 13:48:00) [26]

Пробовал так:
procedure LoadingGrid(s:String);
var
fileList:TStringList;
i:Integer;
begin
 fileList:= TStringList.Create;
 try
   fileList.LoadFromFile(s);
   for i:= 0 to fileList.Count-1 do Form1.StringGrid1.Cells[0,i]:= fileList[i];
 finally
   fileList.Free;
 end;
end;

LoadingGrid('text.txt');

Вобще ничего не читает :(


[ВладОшин]   (2013-09-17 13:31:00) [27]


>  как быстрее прочитать построчно текстовый файл используя
> потоки?

А как читаешь на данный момент?


TInteger   (2013-09-17 13:25:00) [28]

А как быстрее прочитать построчно текстовый файл используя потоки? И куда кинуть данные чтобы потом когда нужны прочитать в грид?


sniknik   (2013-09-17 12:59:00) [29]

причитать и НЕ заполнять таблицу... отображать только нужное по мере необходимости. (аналоги DBGrig - дфтасеты, TreeView - виртуальный режим)


TInteger   (2013-09-17 12:41:00) [30]

>sniknik Вначале прочитать все из файла а потом заполнить данными таблицу?


sniknik   (2013-09-17 12:21:00) [31]

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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо