Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mapped file (https://www.delphipraxis.net/111690-mapped-file.html)

mohfa 7. Apr 2008 22:56


mapped file
 
Hello every one :

I have a Text File its size is about : 15 MB and i want to compare its lines with other text File . for the first time i used the TStringList to open the First File ( when its size was about 10 KB ) so i hade no problem and i used the TStringList like this :
Delphi-Quellcode:
--
Var
SL:TStringList;
S:String;
begin
//Load the text file (test.txt ) into the TStringList then use
For i:=0 to SL -1 do
if S=SL.Strings[i] then
Showmessage('yes :'+S+' is found in the file' );
...
...
end;
but when the File becoms more and more huge the TStringList takes forever to load the File's Lines and do the comparasion.
so what i think is to map the First File then do the comparasion and here is my question :
is there any function or procedure that loads the mapped file into the stringlist and do the comparasion very fast .


many thanks

lbccaleb 7. Apr 2008 23:22

Re: mapped file
 
whould you compare the both textfiles, or only some strings from the file??

when not, look at this:

compare 2 files

this methode uses memorystreams!!
i hope it can help you!

mohfa 7. Apr 2008 23:52

Re: mapped file
 
Zitat:

Zitat von lbccaleb
whould you compare the both textfiles, or only some strings from the file??

when not, look at this:

compare 2 files

this methode uses memorystreams!!
i hope it can help you!

many thanks lbccaleb , but what i want is to compare line by line from the first huge text file with the 2nd text file .

Klaus01 8. Apr 2008 06:54

Re: mapped file
 
Good morning,

why not laoding the small file into a StringList
und running through the huge file line by line and
comparing the current line with the content of the StringList.

So the huge file has only be read by once and the
small file is located within the memory.

For reading the file line by line,
you may want to use the "old Pascal Style"
AssigneFile, readLn etc.
or the newer functions like
FileOpen, FileRead etc..

Have a nice day
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz