PureBasic

Forums PureBasic
Nous sommes le Dim 26/Mai/2013 9:41

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: CSV Doublon killer
MessagePosté: Mer 28/Mar/2012 15:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5229
J'ai un client qui à cause d'un âne s'est retrouvé avec des adresses répétées de 1 à 4 fois dans ces contacts outlook.
J'ai donc eu besoin de créer un petit logiciel qui
- Ouvre un fichier "nom_original.csv"
- Supprime les doublons qui se suivent
- Crée un nouveau CSV "nom_original_new.csv"

Le fichiers comptait 2600 contacts
Au final, il en avait réellement 694 :)

Si ça peut vous servir.

Code:
; CSV Doublon Killer.
; Ar-S / Mars 2012 / P.B 4.60

Global F$, Destination$
Global NewList Contact.s()



Procedure CreateListFromCSV (NumFichier_ARS, FilePath_ARS.s, List ListName.s())
  ; Ar-S / 28/03/2012
  ; Procédure de création d'une liste à partir d'un fichier CSV.
  ; Retourne 1 si la liste a été créée ou 0 si echec
  ; Suppression des doublons qui se suivent pour fichier CSV
 
  Protected NbrLigne
 
  ClearList(ListName())
  NbrLigne = 0
  doublon = 0
 
  If ReadFile(NumFichier_ARS , FilePath_ARS)
    B$ = ""
    While Eof(NumFichier_ARS) = 0
      A$ = ReadString(NumFichier_ARS)
      If A$ <> B$
        AddElement(ListName())
        ListName() = ReadString(NumFichier_ARS)
        B$ = ListName()
       
      Else
        Debug "doublon : " + A$ + " et " + B$
        doublon + 1
       
      EndIf
     
      NbrLigne + 1
     
    Wend
   
    If doublon > 0
     
      Debug "doublon virés : " + Str(doublon)
     
    EndIf
   
    CloseFile(NumFichier_ARS)
    ProcedureReturn 1
   
  Else
    ProcedureReturn 0
  EndIf
 
 
EndProcedure





FichierParDefaut$ = "C:\"
Filtre$ = "Fichier CSV (*.csv)|*.csv"
F$ = OpenFileRequester("Choisissez le fichier CSV", FichierParDefaut$, Filtre$, 0)
If F$
  MessageRequester("Information", "Le fichier suivant va être traité :"+Chr(10)+F$, 0)
  Chem$ = GetPathPart(F$)
  in$ = Left (GetFilePart(F$), Len(GetFilePart(F$))-4) ; -4 = sans l'extension
  Destination$ = Chem$+in$+"_new.csv"
Else
  MessageRequester("Information", "La sélection a été annulée, ce programme va se terminer.", #MB_OK|#MB_ICONINFORMATION)
  End
EndIf




liste = CreateListFromCSV(0,F$,Contact())

If liste = 0
 
  Debug "erreur"
  MessageRequester("Erreur", "Liste vide ! Ce programme va se terminer.", #MB_OK|#MB_ICONINFORMATION)
 
Else
 
  Debug "Liste : " + Str(liste)

  CreateFile(1,Destination$)
 
 
  p = 0
  ForEach Contact()
    p+1
    WriteStringN(1, Contact()) 
    Debug Contact()

  Next
 
  CloseFile(1)
 
  Debug "Nbr de contact  : " + Str(p)
 
  MessageRequester("Terminé ! ", ".:: Journal ::." +Chr(10) +Str(p) + " doublons filtrés"+Chr(10)+ " Nouveau fichier CSV :  "+Destination$ + Chr(10)+Chr(10)+"Merci d'avoir utilisé un logiciel LDV MULTIMEDIA"+Chr(10)+"http://ldvmultimedia.com"  , #MB_OK|#MB_ICONINFORMATION ) ;-TEST
EndIf


End

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye