Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.003 c
15-1362166343
N.Cage
2013-03-01 23:32
2013.07.21
Nokia Lumia(отзывы о Винде)


2-1353050219
Unknown1
2012-11-16 11:16
2013.07.21
сравнение 2-х TFileStream


2-1353780441
Tcount
2012-11-24 22:07
2013.07.21
Какой браузер по умолчанию, User-Agent.


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


3-1286969311
yurikon
2010-10-13 15:28
2013.07.21
Выделение строки в гриде цветов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский