# -*- coding: utf-8 -*-
"""
Created on Tue Jan 17 20:05:19 2017

@author: PC Alexandre.Ribault
"""
import csv
""" Déclaration des fonctions secondaires """
def csvcount(filename):
    i=0
    Tableur= open(filename,"rb")
    for row in Tableur:
        i+=1
    Tableur.close()
    return i
    
def txtcount(filename):
    i=0
    FichierTexte= open(filename,"rb")
    while 1:
        data=FichierTexte.readline()
        if not data:
            break
    
        else :
            i+=1
    FichierTexte.close()
    return i
    
def trie(string,filenameSource,filenameDestination):
    FichierSource= open(filenameSource,"rb")
    FichierDestination= open(filenameDestination,"wb")
    while 1:
        data=FichierSource.readline()
        if not data:
            break  
        else :
            if data.find(string)>0:
                FichierDestination.write(data)
              
    FichierSource.close()
    FichierDestination.close()
    Copie(filenameDestination,filenameSource)
    FichierDestination= open(filenameDestination,"rb")
    contenu= FichierDestination.read()
    print contenu
    FichierDestination.close()
       
def triebarre(string,filenameSource,filenameDestination):
    FichierSource= open(filenameSource,"rb")
    FichierDestination= open(filenameDestination,"wb")
    while 1:
        data=FichierSource.readline()
        if not data:
            break  
        else :
            if data.find(string)<0:
                FichierDestination.write(data)
              
    FichierSource.close()
    FichierDestination.close()
    Copie(filenameDestination,filenameSource)
    FichierDestination= open(filenameDestination,"rb")
    contenu= FichierDestination.read()
    print contenu
    FichierDestination.close()
    
def NbOccurence(string,filenameSource):
    i=0
    FichierSource= open(filenameSource,"rb")
    while 1:
        data=FichierSource.readline()
        if not data:
            break  
        else :
            if data.find(string)>0:
                i=i+1
    FichierSource.close()
    return i

    
def Copie(filenameSource,filenameDestination):
    FichierSource= open(filenameSource,"rb")
    FichierDestination= open(filenameDestination,"wb")
    while 1:
        data=FichierSource.readline()
        if not data:
            break
        else :
            FichierDestination.write(data)

    FichierSource.close()
    FichierDestination.close()

def conversion(filenameSource,filenameDestination):
    FichierSource= open(filenameSource,"rb")
    FichierDestination= open(filenameDestination,"wb")
    TableauStr =csvcount(filenameSource) *[0]   
    iTStr=0                                         
    Tableau= csv.reader(FichierSource,delimiter=";")   
    for row in FichierSource:
        FichierDestination.write(row)
    FichierSource.close()
    FichierDestination.close()
    

def filtre (filenameSource):
    FichierSource=open(filenameSource, "rb")
    contenu=FichierSource.read() #Lit tout le fichier d'un coup
    index = { ';' :' '}
    FichierSource.close()
    
    for cle in index:
        contenu=contenu.replace(cle, index[cle])
    FichierSource=open(filenameSource, "wb")
    FichierSource.write(contenu)
    FichierSource.close()
    
def listedefinitive(filenameSource,filenameDestination):
    FichierSource= open(filenameSource,"rb")
    FichierDestination= open(filenameDestination,"wb")
    flag=1
    while flag!=0:
        string=raw_input("Critères: ")
        if ((string=='fin')|(string=='')):
            flag=0    
        else:
            if string.find('/')==0:
                string=string.replace('/','')
                triebarre(string,filenameSource,filenameDestination)
                print txtcount(filenameDestination)
            else:
                if string.find('.')==0:
                    string=string.replace('.','')
                    NbOccurence(string,filenameSource)
                else:
                    trie(string,filenameSource,filenameDestination)
                    print txtcount(filenameDestination)
                    
                    
def listedefinitiveVersionGraphique(filenameSource,filenameDestination):
    """
    FichierSource= open(filenameSource,"rb")
    FichierDestination= open(filenameDestination,"wb")
    trie(string,filenameSource,filenameDestination)
    print txtcount(filenameDestination)
           
            
    FichierSource.close()
    FichierDestination.close()
    """
  
