Find Jobs
Hire Freelancers

Simple class for storing email addresses

$30-250 USD

In Progress
Posted almost 10 years ago

$30-250 USD

Paid on delivery
Implement in Delphi 7 or compatible, a simple non-visual class called TEmailList that can be used to store email addresses. The class must store the data (i.e. the email addresses) in a memory efficient way, allowing the storage of millions of email addresses with minimal use of RAM. The class must be able to hold in memory 1 000 000 email addresses using at most 10 MB of memory. For reference: loading this amount of data in a simple TStringList would use about 33 MB of memory. To achieve this, the data must be stored in some kind of tree structure, which will eliminate the need to store duplicating character patterns. The TEmailList must have the following public functions: * AddEmail * EmailExists * Clear * Count * SaveToFile * LoadFromFile Notes: It must be possible only to add unique email addresses to the storage, in case AddEmail is called for email address that already exists in the storage, the AddEmail call must return false. The SaveToFile saves the currently stored email addresses to a given filename in a format of one email address per line. The LoadFromFile loads the email addresses from a file, the file is in one email per line format. The SaveToFile and LoadFromFile functions must support an optional EncryptionKey parameter, if given, the data is saved to disk / read from disk, in encrypted form. The encryption can be implemented using any lightweight encryption library or by implementing some simple encryption algorithm such as RC4. If the data is saved / read in encrypted format, then the file format is naturally not the one email per line format. Please do not offer solution in any other programming language than Delphi.
Project ID: 6046131

About the project

8 proposals
Remote project
Active 10 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
Hi, I'm Delphi expert with large experience in various areas, I have few ideas on how to do a memory efficient storage. As for encryption, do you want some better encryption like AES? I can implement it with the help of CryptoAPI or some freeware libs. Also for testing do you have some large list of mails?
$215 USD in 10 days
4.9 (36 reviews)
6.1
6.1
8 freelancers are bidding on average $331 USD for this job
User Avatar
Hello! I'd like to work with you again and help you on this! This project sounds like a true challenge and is therefore quite interesting to me :-) Within 3 days I will deliver this as an optimized B-tree that is ligtning-fast in adding emails (due to the structure), verifying if email exists and does NOT store redundant data. I will achieve this by only storing new characters, eg those that are in addition to the leaf above. I don't quite fully know how exactly I'll implement this (yet) so that it is optimal but I understand this is your general requirement, eg to minimise the amount of memory used. I'll implement the non-visual class that can: 1.) save list of emails in text file, one address per line 2.) load itself from the same file format 3.) check for existence of email 4.) add new email and if already exists, return false Please note that loading, saving, verifying existence and adding new address can be expected to be considerably slower than as working with optimized structures - these will be optimized, but for memory-efficiency and not speed. Due to the high number of comparisons I expect will be required, maintaining the tree will cause higher CPU load next to lower RAM consumption. Additionally, I will be available later on for future developments as you may require. I look forward to working with you again! thanks & regards, Janos
$315 USD in 3 days
4.9 (30 reviews)
6.1
6.1
User Avatar
Hi I could write you the class that you want, using nested lists etc and optimized string handling to create a small memory footprint for the stored data. I cannot guarantee that it will meet the memory requirements fully (as it is dependent on the data itself) but in general it should. Since you are going to use it on Delphi 7 etc, I am assuming you do not want unicode strings. Regards Soumitra
$222 USD in 7 days
5.0 (9 reviews)
4.1
4.1
User Avatar
Would be better is you can send the actual email list to test against? -- -- -- ---- ---- ---- Thanks.
$210 USD in 5 days
4.2 (5 reviews)
4.2
4.2
User Avatar
Hi there , I'm delphi coder I used to do similar jobs just like the one you have mentioned , I mean creating classes and objects that can make my programming more easier and effective and more protected against evil-minded ^^ regarding to your class I think it could be derived from TList component or create its own abstract methods so that it can deal with memory besides we can use some API function that can free memory the most possible and now for saving data we can make an overloaded function that can save with an encryption key or without one using some open source libraries just like DCPcrypt that supports hashes , ciphers and so forth like RC1-6 ,Blowfish,DES,AES .... etc to disallow tampering with after that we should give it some tests using debuggers to handle exceptions and get rid of all bugs anyway just provide me with more information and I'll do my best after all it is your verdict Best regards
$200 USD in 5 days
5.0 (5 reviews)
3.0
3.0
User Avatar
Looks interesting, first choice is to use a Tree Based Data Structure for storing Strings (you can start a chat to know more), if that does not work, some compression methods can be considered. I have MS in Information Security with research interest of Cryptography. I have implemented Cryptography algorithms in Java and C, written security solutions in J2EE and Java, have implemented datastructures in Java, and built two websites for research / proof-of-concept purposes. Additionally, ~2 years of IT experience. I have taken Graduate level courses in Cryptography and Security that dealt with analysis of Cryptographic protocols, my Masters level project involved design of a Cryptographic protocol for a specific authentication problem in three-party settings. I have executed a number of projects that focussed almost entirely / heavily on Cryptography. I have also written Cryptographically signed Java applet for a J2EE application. Details about projects executed available on request. You might want to go through reviews project creators left for me on freelancer.com, see https://www.freelancer.com/u/ciphe.html.
$1,000 USD in 20 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of THAILAND
Turku, Thailand
5.0
591
Payment method verified
Member since Mar 16, 2011

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.