CSV Doublon killer

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

CSV Doublon killer

Message par Ar-S »

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 : Tout sélectionner

; 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
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels