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

Вниз

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

 
Iandy   (2012-11-22 10:43) [0]

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


 
Ega23 ©   (2012-11-22 10:52) [1]

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


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

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


 
Sha ©   (2012-11-22 11:33) [2]

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


 
Iandy   (2012-11-22 11:34) [3]

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


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

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

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


 
sniknik ©   (2012-11-22 11:41) [5]

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

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


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

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

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


 
Iandy   (2012-11-22 11:55) [7]

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

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


 
Smile   (2012-11-22 11:56) [8]

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

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


 
han_malign   (2012-11-22 11:56) [9]


> Ну ну.

- это был сарказм...
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;


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

Sha ©   (22.11.12 11:33) [2]

Поддерживаю


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


> Iandy   (22.11.12 11:55) [7]

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


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

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


 
MBo ©   (2012-11-22 14:04) [13]

начни с TStringList


 
Jeer ©   (2012-11-22 16:37) [14]


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


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



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

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

Наверх




Память: 0.49 MB
Время: 0.008 c
4-1264756803
Handbrake
2010-01-29 12:20
2013.07.21
Вопрос по memory mapped files


15-1361990175
ХХХХХ
2013-02-27 22:36
2013.07.21
Как сделать паузу?


2-1353340493
toropoff
2012-11-19 19:54
2013.07.21
bass.dll


15-1362244097
картман
2013-03-02 21:08
2013.07.21
а что такое "понимание платформы .net"?


2-1353504016
Tcount
2012-11-21 17:20
2013.07.21
Пишу свое интернет-радио...