![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как быстро загрузить в Мемо большой файл
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]Я не уверен, что ты вообще сможешь в Мемо такой файл загрузить.
> или быстрый поиск текста внутри больших файлов, минуя Мемо?
Изложи задачу.