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

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

Как быстро загрузить в Мемо большой файл


Iandy ©   (2012-11-22 10:43:00) 

Есть текстовый файл 26 мб который должен быть загружен в Мемо, далее по нему осуществляется поиск конкретной фразы. Вопрос в том что файл слишком долго грузится с диска в Мемо. Как сделать быструю загрузку больших файлов в Мемо, или быстрый поиск текста внутри больших файлов, минуя Мемо?


Jeer   (2012-11-22 16:37:00) [1]


> Любая работа с текстовым файлом должна выполняться через
> TMemo.


Плюсую - куды ж без любимого TMemo.


MBo   (2012-11-22 14:04:00) [2]

начни с TStringList


Iandy   (2012-11-22 12:18:00) [3]

Спасибо. Скорее всего займусь переводом этого файла в базу. Там поиск будет удобнее


Плохиш   (2012-11-22 12:07:00) [4]


> Iandy   (22.11.12 11:55) [7]

Программист нужен, аднака...


Игорь Шевченко   (2012-11-22 12:01:00) [5]

Sha ©   (22.11.12 11:33) [2]

Поддерживаю


Smile   (2012-11-22 11:56:00) [6]

файл слишком долго грузится с диска в Мемо

Это сколько в единицах времени?


han_malign   (2012-11-22 11:56:00) [7]


> Ну ну.

- это был сарказм...
TMemoryStream.LoadFromFile
если обработка текста в блоке памяти выше Вашего понимания, то (дабы  избежать лишнее копирование):
function  FileToStr(const FName: string; var FileContents: string): Boolean;
var fh : THandle; br, f_size : LongWord;
begin
 result := false;
 fh := CreateFile(PChar(FName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if fh <> INVALID_HANDLE_VALUE then begin
    f_size := GetFileSize(fh, nil);
    try
      SetLength(FileContents, f_size);
      result := ReadFile(fh, FileContents[1], f_size, br, nil);
    finally
      CloseHandle(fh);
    end;
 end;
end;


Iandy   (2012-11-22 11:55:00) [8]

>база данных нужна.

База данных это конечно хорошо. Только где ее взять то.. Предлагаете перевести этот текстовый файл в базу? Только вот интересно как. Вручную слишком долго. По одному чтобы вытаскивать слова нужно опять же как то загрузить этот файл в программу а Мемо висит около десяти двадцати секунд


sniknik   (2012-11-22 11:41:00) [9]

> Большой текстовый файл это современный толковый словарь всех слов. Нужно организовать поиск по введенным пользователем словам
база данных нужна, а не "большой текстовый".

> Ну ну. А вы попробуйте ...
это был сарказм.


anatoly pogoretsky   (2012-11-22 11:41:00) [10]

> Iandy  (22.11.2012 10:43:00)  [0]

Текст в TMemo грузится самым
оптимальным способом.


Iandy   (2012-11-22 11:36:00) [11]

Любая работа с текстовым файлом должна выполняться через TMemo

Ну ну. А вы попробуйте загрузить 26 мб текста в Мемо и оцените скорость загрузки


Iandy   (2012-11-22 11:34:00) [12]

Большой текстовый файл это современный толковый словарь всех слов. Нужно организовать поиск по введенным пользователем словам


Sha   (2012-11-22 11:33:00) [13]

Любая работа с текстовым файлом должна выполняться через TMemo.


Ega23   (2012-11-22 10:52:00) [14]

Я не уверен, что ты вообще сможешь в Мемо такой файл загрузить.


>  или быстрый поиск текста внутри больших файлов, минуя Мемо?

Изложи задачу.


Наверх

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