Autoit3, djgpp, and MinGW compiled executables with sources [auto-it3 32+64bit,DOS 32-bit, windows 32+64-bit]).
3/25/2011 OOPS! old version doesn't search. new version won't compile due to lack of memory and because BOOST isn't available in MinGW even though the boost web site says it is. I am not going to pay for support because I can't afford it - it probably costs $1000 or $2000 knowing developer stuff. ouch. I am at a stopping point until I can get a new machine with a huge amount of memory. the compiler just chews it up. It will be a few months from now. you can expect to wait until C++ compilers like mingw-w64 implement TR2 before I start working on this project again. for now, this project is on hold. sorry. I just added about 40 new fields, like company stuff and a 2nd address set. I realized this need after I discovered that businesses can have several addresses, and a home location, and also that people can have a 1st and 2nd address (after I started moving from an apartment into a house and needed a PO Box in addition to the old address, and needed the field marked as a mailing address or a physical address). If you think there are more uses for addresses, let me know. I really only have room for 3 address sets, one including the company's.
the 2 setup programs combined contain everything you need to do a complete installation, whether you have 1 server with multiple clients (workers), or you are just setting everything all up on 1 machine, in which case you only need the server setup (includes client as an option). They should be Windows Vista/7 compatible (I do not have Vista/7 to test with).
to download the programs, right click on the download button and choose "save link as..." or "save target as..." whichever your browser has if you have that option. if you can't do that, and you can only download the file, do that. What you are trying to avoid is executing the file.
09/27/2010 01:15 AM 115,545,670 phonelst.zip SHA512 phonelst.zip 3cdc02ca8adca1b4 7222b9b50c839b54 f68798c590a4190e 8629fa42f1a7a1ce a51b1aaedd3bbbcc cdc1fbcbf08a8eb3 eec97c8c979cf9bd bde294d847307b16 MD5 phonelst.zip 1229e6257cfc8a0236c1f6475f745a4a 04/18/2010 11:15 PM 5,341,603 phonelist-3.2-setup-client.exe 04/18/2010 11:15 PM 55,338,922 phonelist-3.2-setup-server.exe SHA512 phonelist-3.2-setup-client.exe d1f49fba7c44a5ba 82122b063a0db4d3 baab39f9f7ef539d ea48f9501ee62f25 ea9b62e2de408d93 3132722a305a23a7 4292da559a31b5af 6ed3b83502d1ab70 MD5 phonelist-3.2-setup-client.exe 427f3befccd583f180cb28602119ab57 SHA512 phonelist-3.2-setup-server.exe 6149eba21cc20ff8 963f615e8a473e78 4c202bff076969e9 92d70353fe095e8e 8e8d3b963f331c21 015aaccd4361a7ae 21683487869e6f53 760bf2cbd4d3ddf5 MD5 phonelist-3.2-setup-server.exe f0a455317d8d9cc66fe0a0065ac327aa
- in 3.3, company address fields, includes own zip and checkbox for "Mailing address" and checkbox for "Physical address", and "home location" checkbox
- in 3.3, home address field 1 includes own zip and checkbox for "Mailing address" and checkbox for "Physical address"
- in 3.3, home address field 2 includes own zip and checkbox for "Mailing address" and checkbox for "Physical address"
- in 3.3, release on sourceforge
- in 3.3, will change screen resolution to fit in 1280x768
- in 3.3, subcategory fields (including their search fields) will be accessed via buttons on the main dialog.
- in 3.3, the main dialog will show via side-by-side readonly checkbox if there are search fields filled for a given item.
The GUI is done as of version 3.0 (now 3.3 is out). That is what this 3.0 version is all about, that and export features and some more fields. The programs are written for the ASCII character set only, because I have no good way to test and develop for UNICODE - if you try other languages you will get unpredictable results. The back-end program to the GUI is very similar to the command-line program phonelist.exe, except there are some alterations( one is that there there is no user interaction, the other is that there is always a limit of 1 and an offset on searches).
- as of 3.0, import/export CSV format compatible with OpenOffice.org and Excel, with required header row
- as of 3.0, import/export formatted text file
- as of 3.0, export Excel XML format spreadsheet files. (65536 rows maximum in Excel 2003, 1048576 rows in Excel 2007, 65536 rows in Openoffice.org Calc 3.1 but it won't open the files until 3.2.x)
- as of 3.0, add, update, delete, and search for records with a variety of fields.
- as of 3.0, can get a text dump of all or a subset of records.
- as of 3.0, GUI app for ease of use. fits in 1024x768 screen. (will change this to 1280x768)
- as of 3.0, added user1-user5 fields, and contacthours field.
- as of 3.0, this is a large difference from the 1.1 version, which was simply storing a single line of searchable text as a record.
- as of 3.3, 2nd address, more fields, and expanded GUI. by this I mean whole 2nd address, including city, pobox, zip, etc. and a comment. due the the size of the command-line, a command may not work.
- as of 3.3, fixed a bug where search wasn't working in 3.2.
- CSV format: using phone numbers with +1 or +0 in in front of the number causes excel and possibly other spreasheet programs to actually try to calculate and crunch the numbers and get a result rather than treat it as a string. there is no workaround except to use a different file format. so I decided to support Excel XML spreadsheet format. it's quick and easy to generate, though they are a little canned.
- CSV format: commas are not allowed in
- non-english (USA-ASCII) characters are not supported currently until I can get help from someone to completely gut and rewrite the program. I can't afford a $800 microsoft compiler. it is either going to be MinGW or MSVC++ Pro or a somebody doing a .net app and me almost out of the picture.
- I could not get the code working that prevents simultaneous instances of the GUI on a single desktop. For some reason it refuses to work on Auto-it3 but works fine on NSIS. CreateMutex() always returns an empty string instead of a ptr. If you do run multiple instances, they will be fighting with each other over search results and configuration files.
IT/SYSTEM ADMIN NOTICE:
This is a client-server program.
If you are deploying this application, you should probably be a system admin or IT person. There are 2 standalone setup programs under the
- setup-client.exe which contains the phonelistGUI.exe and phonelist.exe programs, and sample data, but removes the initdb scripts during the installation process.
- setup-server.exe which contains the above also but does not remove the initdb scripts, and the PostgreSQL 8.4.0 database, and an initdb.cmd database initialization script, which calls psql to run a small SQL script that sets up the database user, database, and creates the schema and table the program uses.
NOTE: if you are deploying on Vista or 7 or 2008 boxes, please let me know, and I will recompile the GUI with a newer version of Auto-it3 that is Vista-compatible and has a manifest. I can only keep 1 auto-it3 compiler version on my machine at a time, and I was hoping to make my phone program available to winbdows 9x audiences. However, maybe it is time to upgrade. I keep running into people with windows 98 machines.
I am unable to write a real windows version at this time, because I am not any good at real windows programming. The closest thing to Windows programming that I can get its Auto-It3, a BASIC-like language. I have written some very simple graphics C windows GUI programs, but that has absolutely nothing to do with windows controls, which are harder to deal with - you have to send them messages and process the messages - blech. And some of them are function calls I think. If it is going to become a real windows app and handle UTF-8, it is going to require the help of somebody else, and at that point, the project will be out of my hands, because I won't be able to maintain it anymore (I can still host the code on my web site though). I wouldn't mind making this a better program though.
There are only 2 microsoft-compatible C++ compilers which work with PostGres's libpq: MinGW and Microsoft Visual C++ Professional ($800). The program could possibly be rewritten as a .Net program, there is support for that, but I know almost nothing about .Net.MinGW is free and it works with microsoft-compiled DLL's, but it does not have MFC and it does not work with microsoft .lib libraries. MinGW uses gcc .a libraries which are not in a coff format or something like that. But notice I said Microsoft Visual C++ Professional: the licensing for the Express version disallows others to modify the resulting program and disallows sharing the source. This means no BSD licenssing and no Open Source licensing, so that means PostGreSQL libraries are out if you use Express (someone suggested Express to me, but obviously they had not read the EULA for Express).
I can't help but think that people would generally appreciate a web application better for their organization though, so I may just write one in PHP+MySQL.
the program works best using XP SP3 or later, since SP3 has an 8KiB commandline instead of a 2KiB commandline for cmd.exe shell, and the shell is used for passing database data back and forth. The longer the command-line the better.
you can see how long the command-line is on your favorite OS by doing this (we are trying to turr a non-square block of characters into as square a block as possible with the characters we have):
- start Notepad++ (not notepad, this is a programmer's editor)
- start a cmd.exe by doing [windows-logo-flag-key]-R cmd [Enter]
- click the upper left corner menu handle and pick properties and set the window size to 132x121 and buffer size (as big as you can make it) to 132x9999 however long you can make it, I usually choose 9999.
- make your changes to the shortcut which started the window, and save your changes
- hold down a letter key in the cmd shell prompt. it will take a few minutes.
- after it stops, right click and pick Mark, click on the upper left corner of the entire block of text where your characters are, even if it contains a command prompt and some trailing spaces, but no blank lines. hit [Enter] when you are done. this will copy it to the clipboard.
- paste it into a new document in notepad++.
- remove the command prompt from the text (drag the mouse over it and hit delete).
- if there are characters left over on that line, drag the mouse over the remaining repeated letters on the line and hit Ctrl-x for cut or do Edit, Cut and click on the end of the last partial line and do Ctrl-V or do Edit, Paste. essentially you are stripping out the command-prompt junk, and moving the little chunk of text from the first line onto the last line.
- if it overextends past the line ends of the other lines, click in the place where the line should end on the last line and hit [Enter] and the line should split.
- go back and click on the first line and see if it is completely blank.
- if it is (it should be), delete it by hitting the delete key until the the entire text comes up one line (until that blank line is gone).
- NOW we can count blank lines and columns. click in front of (just to the left of the character of) the last character of the longest last line.
- now look in the status bar at the bottom. you should see something like Ln:62 Col:132 multiply these numbers with a calculator and write and answer down.
- now for adding the last line, if it contains fewer than a full line of characters, you click on the last line just before the last character (or you can hit the down arrow key and then the left arrow key).
- look at the Col:6 number and add this number to the previous number you calculated. this is the total command-line length.
If you get something other than 8190, I would be extremely interested in it if you were to email me with the results so I can document it on my limitations page and here anything that helps. If Microsoft has improved the cmd shell on a particular OS, such as 7 or 8 or vista, I am interested.
- XP SP2, preferably SP3, will work on SP2. have not tested on windows 2000 or NT, it may work.
- XP SP2, preferably SP3, will work on SP2. have not tested on windows 2000 or NT, it may work.
this is the documentation for the command-line app that comes with the program. a back-end version, guibackend.exe/.cpp, very like this which yields a single record at a time instead of a whole resultset is used by the GUI. the GUI is simply a wrapper.
"phonelist - multiuser phone-list/contact database\n" "usage:\n" "phonelist [-[-]?] [/?] [-[-]h[elp]] [/h[elp]] [-[-]v[er[sion]]] [/v[er[sion]]]\n" "phonelist -s[earch]/-f[ind] findArguments\n" "phonelist -a[dd]/-i[nsert] addArguments\n" "phonelist -s[earch]/-f[ind] findArguments -d[elete]\n" "phonelist -s[earch]/-f[ind] findArguments -u[pdate]/-c[hange] updateArguments\n" "phonelist -importcsv csvFilePath\n" "phonelist -importtxt txtFilePath\n" "phonelist -exportcsv csvFilePath [findArguments]\n" "phonelist -exporttxt txtFilePath [findArguments]\n" "phonelist -exportexcelxml xmlFilePath [findArguments]\n" "\n" "To configure this program, set an environment variable to your libpq.dll:\n" "phonelistdll=C:\\Program Files\\PostgreSQL\\8.4\\lib\\libpq.dll\n" "PGHOSTADDR=localhost\n" "PGPORT=5444\n" "If you don't supply the environment variables, the above will be used.\n" "If any argument has spaces or punctuation in it, double-quotes (\") must surround both the searchString and the recordLine. just use them.\n" "You should know that any inserted or imported records that are duplicates will remain duplicates. due to the nature of multicountry contact databases, there is no way to guarantee the uniqueness of a name within a country, or possibly even within an address." "Searches are case insensitive. Data Entered is not. Search fields like mc%% search for everything that starts with Mc, like McNamara and McElhaney. %%e searches for everything that ends with e. %%chm%% searches for anything with chm anywhere in in it.\n" "\n" "-h or --h or -help or -? or etc. or no arguments gives this help and exits.\n" "-v or -ver or -version etc. gives the version number and exits.\n" "\n" "Commands:\n" "-port integer63 specifies the database port which defaults to 5432. any command can come after this.\n" "-host hostaddr specifies the database hostname/ip address which defaults to localhost. any command can come after this.\n" "-search or -find finds whatever arguments are given after the -find up until\n" " another command (such as -update or -delete).\n" "-insert or -add inserts a new record. all the rest of the arguments are\n" " expected to be parameters, no commands.\n" "-update or -change or -modify updates the record with the following arguments\n" " found with the preceding -search arguments.\n" "-delete deletes the record found with the preceding -search arguments.\n" "-importcsv csvFilePath imports the specified .csv file into the database. see sample.csv files. commas are not allowed in fields because it would break the format. If you put commas into a cell in Excel, Excel will not export that line or will stop processing further records, and will complain. ASCII text.\n" "-importtxt txtFilePath imports the specified formatted .txt file into the database. see sample.txt. keeps data integrity. ASCII text.\n" "-exportcsv csvFilePath [findArguments] exports to the specified .csv file in CSV format from the database, with optional findArguments as a filter. does not keep data integrity: commas in fields are converted to underscores rather than rejecting the records outright. ASCII text.\n" "-exporttxt txtFilePath [findArguments] exports to the specified .txt file in formatted text format from the database, with optional findArguments as a filter. keeps data integrity. ASCII text.\n" "-exportexcelxml xmlFilePath [findArguments] exports to the specified .xml file in formatted text format from the database, with optional findArguments as a filter. keeps data integrity. I have not written this to handle foreign languages (no UNICODE support). ASCII text.\n" "\n" "id's and integer63's are case insensitive. it can start with a - sign and be negative and be in any of the following number formats: it can be hexadecimal (start with 0x), decimal (plain number or start with 0d), octal (start with 0, 0q, 0o), binary (start with 0b), and can be appended with SI units (_B _D _DB _H _HB _K _KB _M _MB _G _GB _T _TB _P _PB _E _EB) or computer units (_Ki _KiB _Mi _MiB _Gi _GiB _Ti _TiB _Pi _PiB _Ei _EiB) as a multiplier suffix.\n" "\n" "Command Arguments (findArguments, updateArguments, or addArguments):\n" "-id integer63 [integer63...]" "-firstname or -fn\n" "-middlename or -mn or -mi\n" "-lastname or -ln\n" "-homephone\n" "-workphone or -phonework\n" "-cellphone or -phonecell or -cell or -mobile or -mobilephone\n" "-pager\n" "-contacthourshome\n" "-contacthourswork\n" "-website or -site or -url\n" "-twitter\n" "-linkedin\n" "-facebook\n" "-emailhome or -homeemail\n" "-emailwork or -workemail\n" "-comment (_comment in database)\n" "\n" "-home1physicaladdress or -home1physicaladdr (y or n)\n" "-home1mailingaddress or -home1mailingaddr (y or n)\n" "-home1address1 or -home1addr1\n" "-home1address2 or -home1addr2\n" "-home1pobox\n" "-home1city\n" "-home1stateprovince or -home1state or -home1province\n" "-home1postalcode or -home1zip or -home1zipcode\n" "-home1country\n" "-home1comment\n" "\n" "-home2physicaladdress or -home2physicaladdr (y or n)\n" "-home2mailingaddress or -home2mailingaddr (y or n)\n" "-home2address1 or -home2addr1\n" "-home2address2 or -home2addr2\n" "-home2pobox\n" "-home2city\n" "-home2stateprovince or -home2state or -home2province\n" "-home2postalcode or -home2zip or -home2zipcode\n" "-home2country\n" "-home2comment\n" "\n" "-companyname\n" "-companyhomelocation (y or n)\n" "-companyphysicaladdress or -companyphysicaladdr (y or n)\n" "-companymailingaddress or -companymailingaddr (y or n)\n" "-companyaddress1 or -companyaddr1\n" "-companyaddress2 or -companyaddr2\n" "-companypobox\n" "-companycity\n" "-companymailstop or -companyms\n" "-companybuilding or -companybldg or -companycampus\n" "-companystateprovince or -companystate or -companyprovince\n" "-companypostalcode or -companyzip or -companyzipcode\n" "-companycountry\n" "-companycomment\n" "-companywebsite or -companysite or -companyurl\n" "-companyemail\n" "-companylinkedin\n" "-companyfacebook\n" "-companytwitter\n" "\n" "-user1\n" "-user2\n" "-user3\n" "-user4\n" "-user5\n" "\n" "Examples:\n" "phonelist -add -fn Joe -ln Schmoe -cell 123-456-7890 -emailhome email@example.com -comment \"works night shift\" -contacthours \"10am-2pm mon-sat\"\n" "phonelist -find -ln schmoe -fn jo%%\n" "phonelist -find -firstname joe -ln schmoe -delete\n" "phonelist -delete (deletes all records)\n" "phonelist -update -country USA (updates all records with country USA)\n" "phonelist -find -ln schmoe -fn j%% -addr1 \"456 Somewhere Blvd\" -update -homephone +1-503-123-4567 -country USA -addr1 \"123 Blooky Ave\" -city Anytown -state PA -zip 12345-6789 -comment \"building new house\"\n" "phonelist -search -id 2 3 100 -change -ln Smith\n" "phonelist -exportcsv c:\\data.csv -id 1003 1004 1005 2000\n" "phonelist -exportcsv c:\\data.csv -ln Palooka\n" "phonelist -exporttxt \"c:\\users\\owner\\my documents\\data.txt\"\n" "phonelist -importcsv sample-excel.csv\n" "phonelist -exportexcelxml sample-excel.xml -fn j%%\n" "Copyright 2009 Jim Michaels
, portion from example I think Copyright 2009 Microsoft Corporation. Program Under GPL3 License. libpq-fe_dll.h under BSD license. Portions (libpqfe_dll.h) Copyright (c) 1996-2009, PostgreSQL Global Development Group. Portions (libpqfe_dll.h) Copyright (c) 1994, Regents of the University of California.\n"
- import OpenOffice.org CSV, with required header row
- import Excel CSV, with required header row
- import formatted text file
- add, update, delete, and search for records with a variety of fields.
- can get a text dump of all or a subset of records.
DESCRIPTION: this is a contact database. Records can be modified without too much trouble. it is entirely command-line.
- rewrite showrecord() so that it puts a record in -importtxt format. this would make the output editable with a programmer's text editor (no filesize limits). minor change!
- MAYBE a GUI version with a record browser, if I can ever figure out windows programming. it will require a rewrite of 1/2 the code and queries. I think I would still like to keep the command-line program around though. it's just too useful a tool.
Searches are case insensitive. Data Entered is not. I suggest you enlarge the cmd shell's screen buffer height to 5000 (this will allow you to scroll back results).
Start|Run or windows-logo-key (flag key)+R
cmd Enter. click on the upper left corner of the window (little black square box, looks like "c:\" in black), and pick properties|Layout tab|Screen Buffer Size, set height to 5000.
click "save properties for future windows with the same title".
You should use double quotes on text with spaces and punctuation. Search fields like mc% search for everything that starts with Mc, like McNamara and McElhaney. %e searches for everything that ends with e. %chm% searches for anything with chm anywhere in in it.
examples of adding a record:
phonelist -add -firstname Hans -middlename Christian -lastname Andersen -homephone 123-456-7890 -comment "book writer"
phonelist -add -fn John -mi Q -lastname Public -homephone 123-456-7899 -addr1 "123 blooky Ave" -city Anytown -state PA -zip 12345-6789 -country USA -comment "nobody in particular"
phonelist -add -fn Joe -ln Palooka -homephone 503-123-4567 -addr1 "123 Zoozits Dr" -city Anytown -state PA -zip 12345-9876 -country USA -ms JS-1230 -comment "again, nobody in particular"
examples of updating a record:
update all records so country is USA:
phonelist -update -country USA
update Joe Palooka so country is USA:
phonelist -find -firstname joe -lastname palooka -update -country USA
you will be asked if you want to update the records it finds.
examples of deleting a record:
delete all records:
delete Joe Palooka:
phonelist -find -firstname joe -lastname palooka -delete
delete record id 4:
phonelist -search -id 4 -delete
you will be asked if you want to update the records it finds.
examples of finding a record:
finding the firstname that starts with jo:
phonelist -find -fn jo%
finding the firstname that contains jo anywhere in the string:
phonelist -find -fn %jo%
finding the firstname that ends with e:
phonelist -find -fn %e
finding records with id's 100, 200, 45:
phonelist -find -id 100 200 45
phonelist -find -fn joe -ln palooka -country USA
be sure you copy the DLLs from your postgresql
bin\ directory to where phonelist.exe is located, or you will get errors about ssleay32.dll and similar errors.
C:\prj\phonelist\pg-phonelist-2.0\win>phonelist phonelist - multiuser phone-list/contact database usage: phonelist [-[-]?] [/?] [-[-]h[elp]] [-[-]v[er[sion]]] phonelist -s[earch]/-f[ind] findArguments phonelist -a[dd]/-i[nsert] addArguments phonelist -s[earch]/-f[ind] findArguments -d[elete] phonelist -s[earch]/-f[ind] findArguments -u[pdate]/-c[hange] updateArguments phonelist -importcsv csvFilePath phonelist -importtxt txtFilePath To configure this program, set an environment variable to your libpq.dll: phonelistdll=C:\Program Files\PostgreSQL\8.4\lib\libpq.dll PGHOSTADDR=localhost PGPORT=5432 If you don't supply the environment variables, the above will be used. If any argument has spaces or punctuation in it, double-quotes (") must surround both the searchString and the recordLine. just use them. You should know that any inserted or imported records that are duplicates will r emain duplicates. due to the nature of multicountry contact databases, there is no way to guarantee the uniqueness of a name within a country, or possibly even within an address.Searches are case insensitive. Data Entered is not. Search fi elds like mc% search for everything that starts with Mc, like McNamara and McElh aney. %e searches for everything that ends with e. %chm% searches for anything w ith chm anywhere in in it. -h or --h or -help or -? or etc. or no arguments gives this help and exits. -v or -ver or -version etc. gives the version number and exits. Commands: -search or -find finds whatever arguments are given after the -find up until another command (such as -update or -delete). -insert or -add inserts a new record. all the rest of the arguments are expected to be parameters, no commands. -update or -change or -modify updates the record with the following arguments found with the preceding -search arguments. -delete deletes the record found with the preceding -search arguments. -importcsv csvFilePath imports the specified csv file into the database. see sam ple.csv -importtxt txtFilePath imports the specified formatted text file into the databa se. see sample.txt id's are 64-bit signed integers and can be hexadecimal: start with 0x, 0X decimal: plain or start with 0d, 0D octal: start with 0, 0q, 0Q, 0o, 0O binary: start with 0b, 0B Command Arguments (findArguments, updateArguments, or addArguments): -id (spaceSeparatedIdList)-firstname or -fn (name) -middlename or -mn or -mi (name) -lastname or -ln (name) -homephone (homephone) -workphone (phone) or -phonework (phone) -cellphone or -phonecell or -cell or -mobile or -mobilephone (phone) -pager (phone) -company (companyname) -address1 or -addr1 (mailingaddress) -address2 or -addr2 (mailingaddress) -city (city) -ms or -mailstop (mailstop) -stateprovince or -state or -province (state or province) -postalcode or -zip or -zipcode (postalcode) -country (country) -comment (comment) -website (URL) or -site (URL) or -url (URL) -emailhome (email) or -homeemail (email) -emailwork (email) or -workemail (email) Examples: phonelist -add -fn Joe -ln Schmoe -cellphone 123-456-7890 -emailhome nobody@nowh ere.com phonelist -find -ln schmoe -fn jo% phonelist -find -firstname joe -ln schmoe -delete phonelist -delete (deletes all records) phonelist -update -country USA (updates all records with country USA) phonelist -find -ln schmoe -fn j% -addr1 "456 Somewhere Blvd" -update -homephone +1-503-123-4567 -country USA -addr1 "123 Blooky Ave" -city Anytown -state PA -z ip 12345-6789 -comment "building new house" phonelist -search -id 2 3 100 -change -ln Smith Copyright 2009 Jim Michaels, portion Copyright 2009 Microsof t Corporation. Under GPL3 License.
phonelist.exe to your path, go into
Start, Control Panel, System, Advanced, Environment Variables, and find
PATH in System Variables, click on it and click
Edit, hit then
End key, and type in
;c:\bin (you are appending
;c:\bin) and then click OK's all the way through.
Start, Run (or
Windows-key R even on Vista) wait for the box, type in
cmd and hit
Enter. then type in
md c:\bin and hit
That will make the
You are on your own for unzipping and copying the phone.exe to c:\bin.
You can choose wither the gui or the command-line version.
Then in the cmd shell, create the folder
c:\bin by doing
md c:\binand then copy
phonelist64.exe and the DLL's from
copy "c:\program files\postgresql\8.4\bin\*.dll" c:\bin into it.
the GUI version has the advantage of being able to use the clipboard.
This program is under the GPL3 License.
It is always wise to check to see that you can search for your record with the search string before using that string to delete or update or inserting/adding. Basically, you are checking to make sure that the same record doesn't already exist. In other words, before making any change to the database, do a search first to make sure your search pulls up a single record.
When deleting or updating, confirmation is asked.
importing CSV files
CSV files can be in Excel or OpenOffice.org format (OpenOffice.org uses unix-style line endings and puts double-quotes on all text whereas Excel uses windows line endings and does not put quotes on strings unless it absolutely has to)
-importcsv expects in a csv file in row 1 are:
firstname middlename lastname homephone workphone cellphone pager company address1 address2 city mailstop stateprovince postalcode country comment website emailhome emailwork
I have set it up so that the order of the fields is not set in stone and neither is the number of fields. you can pick and choose.
you can open up the sample.csv files and copy and paste into your document.
importing text files
the following fields are used in
firstname: or fn: middlename: or mi: or mn: lastname: or ln: homephone: workphone: cellphone: or cell: pager: company: address1: or addr1: address2: or addr2: city: mailstop: or ms: stateprovince: or state: or province: postalcode: or zip: or zipcode: country: comment: website: emailhome: or homeemail: or homemail: emailwork: or workemail: --
everything after the colon(:) is the data for the field. for example,
fn:Jackie mi:Qorum ln:Paloosa mailstop:A-509 comment:5 awards this year -- fn:Jim ln:Smith mailstop:B-100 ----- fn:Joe ln:Laser mailstop:A-12 --==--
a record is always ended with a separate line that starts with at least 2 dashes/minus signs --
VERY simple phone list database. expects phone list as
c:\etc\phonelst.txt and does case insensitive searches. each line in the file is an entry/record.
phonelst is a phone number list program (database).
phone number list/database program, text file based, one record per line, easily edited with any text editor. Database is stored as text file in c:\etc\phonelst.txt
WARNING: with the 1.1 version, if you are low on memory, you could risk losing the entire database due to the way it works. the entire database is read line by line into memory, modified, and rewritten to disk. Even so, this program should handle as much file as will fit into memory That means a pretty big file given today's machines, although I think that due to memory allocation routines, it may or may not be limited to <2GB.
you can arrange the line any way you like. the program simply searches for the string you specify on the command line.
I suggest a line like Joe Schmoe 123-456-7890 or Joe Schmoe 123-456-7890 1234 Foozle Rd, Anytown, PA, 12345-9780
if you consistently use 123-456-7890 instead of (360) 123-4567 you will have a much easier time finding phone numbers when you want to look them up.
usage: Anything with spaces or punctuation requires double quotes. To insert or add a record, phonelst -i "Joe Schmoe +1-123-456-7890" phonelst -a "Joe Schmoe +1-123-456-7890" To delete a record, phonelst -d "Joe Schmoe" To search for Joe Schmoe, phonelst "Joe Schmoe" phonelst Joe phonelst Schmoe To update a record, phonelst -u "Joe Schmoe" "Joe Schmoe 123-456-7890 1234 Foozle Rd, Anytown, PA, 12345"
This program is *NOT* multiuser! The reason why is that when a record
is written, the entire database is written from memory to the database
However, it can be rewritten to be multiuser if you want to install a real database like Postgresql and use real record structures. Embedding pgsql can be a royal pain because everybody making embedding libraries for pgsql wants to do only .Net rather than C++, and the only C++ libraries available are for compiling under UNIX. blah. I doubt it will work under djgpp and I am quite sure it won't compile under windows environment with VC++ or borland compilers.
C:\prj\phonelist\phonelist-1.0\win>phonelst phonelst - phone number list (text file database) usage: phonelst [-?] [-h[elp]] [-v[ersion]] phonelst searchString phonelst -a[dd] recordline phonelst -i[nsert] recordline phonelst -d[elete] searchString phonelst -u[pdate] searchString recordLine The database filename location is c:\etc\phonelst.txt if either searchString or recordLine has spaces or punctuation in it, double-quo tes (") must surround both the searchString and the recordLine. -h or -help or -? or no arguments gives this help and exits. -v or -version gives the version number and exits. example: phonelst -u "Joe Schmoe" "Joe Schmoe 123-456-7890" searches for the record Joe Schmoe and replaces that record with Joe Schmoe 123- 456-7890 (you can put in addresses if you want). It is always wise to check to see that you can search for your record with the s earch string before using that string to delete or update. Before inserting or adding, (same thing) it is always a good idea to make sure that the same record doesn't already exist. When deleting or updating, confirmation is asked. Searches are case insensitive and will look for the string in any position of the line/record of text. Copyright 2009 Jim Michaels. under GPL3 license.
I usually do
Windows-key R(hold down the windows logo key and hit R)
Enter and then
phonelst "joe schmoe"
Enter. cmd bings up the cmd command shell, and I make sure
phonelist.exe is in a directory that is in my system