bih / cifreader Goto Github PK
View Code? Open in Web Editor NEWThis project forked from swlines/cifreader
CIF Reader is a parser for Network Rail & ATOC CIF and ATCO-CIF files
License: Other
This project forked from swlines/cifreader
CIF Reader is a parser for Network Rail & ATOC CIF and ATCO-CIF files
License: Other
CIF Reader -- CIF Reader is a C++ parser that allows you to parse CIF files issued by Network Rail and ATCO-CIF files issued by Traveline (primarily for NPTDR imports). ** The current release contains Network Rail / ATOC open data CIF parsing only ** CIF Parser requires: - Boost, at least version 1.44 (for filesystem v3) - mysqlpp (custom compile - need to run ./configure with --with-field-limit=55 - needed to ensure schedules and locations can fit in the database) To use it, you will need to create a SQL database, and run the SQL queries that are included in timetables.sql. You will need to create a file called databaseConfig.h in the root directory (where main.cpp is). Fill this in with the details shown below, in between the quotes, obviously... const char* sqlUsername = ""; const char* sqlPassword = ""; const char* sqlDatabase = ""; const char* sqlServer = ""; I haven't included a Makefile, but this is the command I personally use: $ g++ -Wall -I/usr/include/mysql -I/usr/local/include/mysql++ -I/usr/include/boost -lmysqlclient -lmysqlpp -lboost_regex -lboost_filesystem -lboost_thread -lboost_system -o parser main.cpp classes/*.cpp classes/NR-CIF/*.cpp Usage: Just call ./parser <the file you want to read> There are arguments to the program, they must be called separately and separated by spaces - or they won't work :), they are: -t or --truncate-tables Empties all the tables to allow clean import. -a or --atco Enables ATCO-CIF import mode (not yet available) -k or --disable-keys Disables the keys on the tables to allow a much faster import (recommended if running a FULL extract). Re-enables and re-calculates keys after program runs. So as an example... ./parser -t -k -d TTISF618.MCA Sidenote: The files in the locations directory, allStations.csv and associations.csv, should be loaded into stations and locations_alternatives tables respectively if you want to 'merge' locations a bit more easily. It provides a basis in tiplocs_cache to prevent having to keep looking up, and the queries to use locations_alternatives are fairly trivial when looking up TIPLOCs. Ethos: My ethos with providing code is to allow you to build your own system with the tools that I have provided, but not to effectively make clones of something I have done as that's not very novel and rather boring in my opinion. Due to this, I only provide the code to make something *work* - any UI you will need to do yourself. :) I hope you will all appreciate that. I'd always appreciate it if you credit me somewhere for these tools if they have helped you in any work that you do - or email me to let me know in where and what wonderous ways you are using it! My email address is [email protected]. It's not a biggie, though, for me. Licence: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.