Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрая загрузка текстового файла! 
:(
    Опции темы
VAVII
Дата 28.2.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 7.1.2006

Репутация: нет
Всего: нет



Приветствую!

Возникла такая проблема: есть огромный текстовый файл размером 170 метров, требуется быстро загрузить его в память и отобразить!

Если есть какие-нибудь мысли делитесь!

Зарание благодарен!
PM MAIL   Вверх
Guedda
Дата 28.2.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Используй TFileStream. Это самый быстрый способ.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
_hunter
Дата 28.2.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



самый быстрый -- вообще-то отображение в память...
+ на вторую часть вопроса отвечать кто будет?..


VAVII, а ты уверен что тебе нужно отображать все 170 метров? кто их читать будет?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
VAVII
Дата 28.2.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 7.1.2006

Репутация: нет
Всего: нет



Для нагляднисти желательно отобразить все!
PM MAIL   Вверх
_hunter
Дата 28.2.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



ну тогда бери и суй их в TListBox. ну лучше ( всетаки ) подумать нужно ли это и использовать тот же бокс, только виртуальный ( самому отрисовкой/вставкой данных заниматься ) -- тот же FileMon 100 тысяч строк за доли секунды показывает.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Guedda
Дата 28.2.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Все равно винда все 170 метров не засунет в память... Он ее запихнет в файл подкачки, и будет оттуда брать... А если хочешь, чтобы все в память закинулось, используй ассемблерные вставки


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
_hunter
Дата 1.3.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



а файл подкачки это уже не память что-ли?
+ при наличии свободного места в оперативке именно туда мапа и отобразится.

P.S.
и чем тут помогут асм-вставки?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
VAVII
Дата 1.3.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 7.1.2006

Репутация: нет
Всего: нет



Примерчик бы не помешал!
PM MAIL   Вверх
_hunter
Дата 1.3.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



примерчик чего?
если виртуализации бокса -- поиск по слову lbVirtual


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Dian
Дата 1.3.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 2.1.2006

Репутация: нет
Всего: 1



Нужно читать файл по частям. Это будет самый быстрый вариант

Цитата(Guedda @ 1.3.2006, 05:44 Найти цитируемый пост)
Все равно винда все 170 метров не засунет в память...

Если есть столько свободной памяти - то почему бы и нет
PM MAIL WWW   Вверх
VAVII
Дата 1.3.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 7.1.2006

Репутация: нет
Всего: нет



Примерчик загрузки файла через TFileStream!
PM MAIL   Вверх
_hunter
Дата 1.3.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



загрузки куда?
+ идем в справку и читаем, читаем, ...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
pmax
Дата 15.3.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



Цитата

Примерчик загрузки файла через TFileStream!


У меня это реализовано примерно так:

Код

............................................................................................
Procedure TMainForm.LoadButtonClick(Sender: TObject);
Var
       f          : TStringList;
       Path    : String;        //Путь к файлу с данными
  Begin
 OpenDialog1.Filter:='*.asN';
 OpenDialog1.Title:='Открыть файл';
  if OpenDialog1.Execute then begin
   Path:=OpenDialog1.FileName;
   f:=TStringList.Create();
   f.LoadFromFile(Path);
..............................................................................................



Успехов!

PM MAIL   Вверх
Guedda
Дата 15.3.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



И ты считаешь, что этот пример для загрузки при помощи TFileStream?
Вот пример для этого:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Buffer: PChar;
  Stream: TFileStream;
  Size:   LongInt;
begin
  Stream := TFileStream.Create('Unit1.pas', fmOpenRead);
  try
    Size := Stream.Size;
    GetMem(Buffer, Size);
    try
      Stream.Read(Buffer[0], Size);
      Memo1.Lines.Text := Buffer;
    finally
      FreeMem(Buffer);
    end;
  finally
    Stream.Free;
  end;
end;



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
pmax
Дата 16.3.2006, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 13.3.2006

Репутация: нет
Всего: нет



Цитата

И ты считаешь, что этот пример для загрузки при помощи TFileStream?


Нет, но для работы с текстовыми файлами удобнее пользоваться объектом TStrings...
Правда не знаю какой объект быстрее TFileStream или TStrings, поверю Guedda.

P.S. Файл размером 35 метров у меня загружается за 5 сек. (но я закачиваю не всю информацию файла).
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0959 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.