#!/usr/bin/python
# Outil d'import des données dans PostgreSQL
# $Id: test.py,v 1.1.1.1 2001/10/15 22:35:22 chips Exp $

## connexion à la base de données
#DB_TYPE="postgres"
#DB_HOST="localhost"
#DB_BASE="atelier"
#DB_USER="atelier"
#DB_PASS="atelier"

import pgsqldb
import string

# import d'une table simple
def importCSV(conn, table, filename):
	n = -1
	try:
		# ouvrir le fichier de données
		input = open(filename, "r")
		if not input:
			return n
		# passer la première ligne
		line = input.readline()
		if not line:
			return n
		names = string.split(line[:-1], ',')
		for name in names:
			print name
		# pour chaque ligne
		n = 0
		line = input.readline()
		if not line:
			return n
		while line:
			# debug
			n = n+1
			print n, ":", line
			# enlever le \n final
			line = line[:-1]
			# séparer les champs dans le tableau fields
			fields = []
			field = ''
			end = 0
			i = 0
			j = 1
			quote = 0
			while i<len(line):
				c = line[i]
				print i, c
				i = i + 1
				if c=='"':
					print "guillemets"
					if j==1:
						print "en début de champ"
						quote = 1
						j = j +1
					else:
						print "en cours de champ"
						if i==len(line)-1:
							print "normal : fin de champ quoté à la fin de la ligne"
							fields.append(field)
							print "field=", field
							field = ''
							j = 1
						else:
							print "vérifier le caractère suivant"
							c = line[i]
							i = i + 1
							if c==',':
								print "virgule : fin de champ quoté"
								fields.append(field)
								print "field=", field
								field = ''
								j = 1
								quote = 0
							elif c=='"':
								print "2 de suite : 1 seul dans le champ"
								field = field + c
							else:
								print "mettre dans le champ"
								field = field + c
								j = j + 1
				elif c==',':
					print "virgule"
					if quote:
						print "dans champ quoté, on ajoute"
						field = field + ','
						j = j + 1
					else:
						print "champ non quoté terminé"
						fields.append(field)
						print "field=", field
						field = ""
						j = 1
						quote = 0
				else:
					field = field + c
				if i==len(line):
					print "en fin de ligne"
					if quote:
						print "il devrait y avoir une quote !!!"
					fields.append(field)
			# debug
			for i in range(0,len(names)):
				print names[i], "'" + fields[i]+"'"
			# insérer les valeurs
			
			# lire la ligne suivante
			line = input.readline()
	finally:
		input.close()
	return n

# MAIN
print "début !"
try:
	print "se connecter à la base"
	#conn = pgsqldb.connect(host='localhost', dbname='atelier', user='atelier', passwd='atelier')
	#print "liste des énergies"
	#qry = con.query("select * from energie")
	#print qry
	print "importer ASSOCIATION"
	importCSV(conn, "ASSOCIATION", "dst/ASSOCIATION.txt")
finally:
	print "fermer la connexion"
	#conn.close()
print "fini !"

# ASSOCIATION : pas de correspondance
#	chaque MEMBRE appartient à une ASSOCIATION

# MEMBRE : ADHERENTS
# CIVILITE : pas de correspondance
# CONTACT : ADHERENTS
# MOYEN_CONTACT : 
# FONCTION : pas de correspondance
# ADHESION : ADHESIONS
# TYPE_ADHESION : Codes_Adh
# MODE_PAIEMENT : pas de correspondance
# CSP : pas de correspondance
# PROFESSION : Codes_Profession
# REGLEMENT : REGLEMENTS
# TARIF : Tarifs
# TRANCHE : Tranches
# VEHICULE : VEHICULES
# ENERGIE : Codes_Energie
# MARQUE : Codes_Marque
# FAMILLE_ACTIVITES : 
# TYPE_ACTIVITE
# ACTIVITE
# ORGANE
# FICHE_FORMATION
# LIGNE_FORMATION
# ATTRIBUT_MEMBRE
# ATTRIBUT
# ATTRIBUT_VALEUR

# EOF

