1er exemple :
Traitement d'un fichier exporté de Domino.
- But :
Récuperer les adresses mails d'un export au format .txt du names.nsf.
- Requis :
Installer AutoIt.
- Principe :
Exporter le names en txt, récuperer dans un autre fichier uniquement les lignes contenant le champs désiré (ici : InternetAddress), et remplacer le début de la ligne par du vide pour n'avoir que le contenu du champs recherché.
- Marche à suivre :
Dans Domino, selectionner '
Personnes' dans le menu hierarchique de gauche (Onglet
Personnes et groupes), puis Menu
Fichier,
Exporter..., taper le nom du fichier desiré terminé par .txt (le bureau fait très bien l'affaire) puis clic sur le bouton [Exporter]. Laisser par défaut, clic sur le bouton [OK]. Vérifiez que le fichier texte est bien créé et qu'il contient les données voulues.
Clic droit de la souris sur le bureau de Windows, 'Nouveau', 'Autoit V3 Script'. Copier/coller ce code source :
- Code : Tout sélectionner
#include <File.au3>
Global $search = "InternetAddress"
$message = "Selectioner le fichier txt exporté:"
Global $file = FileOpenDialog($message, @DesktopDir & "\", "Fichiers txt (*.txt)", 1 )
Global $target = StringReplace($file, ".txt", "") & "_out.txt"
$cnt1 = _FileExtractLine($file, $search, $target, 0, 0)
_RemplaceString($target)
MsgBox(0, "Fin", "Fin de traitement du fichier." & @CRLF & @CRLF & $cnt1 & " occurence traitée.")
Func _RemplaceString($d)
$find = "InternetAddress: "
$replace = ""
$retval = _ReplaceStringInFile($d,$find,$replace)
If $retval = -1 then
msgbox(0, "ERREUR", "Impossible de remplacer dans " & $d & @CRLF & " Erreur: " & @error)
Exit
Endif
EndFunc
;======================================================================================
; integer _FileExtractLine($file, $search, $target, [$opt], [$case])
; Extract all lines containing a certain substring in a file
;
;Parameters:
; string $file: The file to edit, can be a relative or fix path
; string $search: The char or string to search for
; int $opt: 0 (Default)=Match anywhere in the line, 1=Match only the beginning of the line, 2=Match only the end of the line
; int $case: Search is: 0 (Default)=Case insensitive, 1=Case sensitive
;
;Remarks:
; Works a bit like the unix command 'grep'
; The source file remains untouched
; If an empty search string is given, no lines are matched.
;
;Return Value:
; Success:
; Returns an integer which indicates the number of extracted lines
;
; Failure:
; Returns -1 and sets @ERROR to:
; 1 = Unable to open file
; 2 = Unable to open temp-file
; 3 = Unable to write target-file
;
;Author: Marco Tanner
;======================================================================================
Func _FileExtractLine($file, $search, $target, $opt=0, $case=0)
Local $read, $write, $line, $cnt = 0, $match
$read = FileOpen($file, 0)
If $read = -1 Then
SetError(1)
Return -1
EndIf
$write= FileOpen(@TempDir & "\~tmp", 2)
If $write = -1 Then
SetError(2)
Return -1
EndIf
While 1
$line = FileReadLine($read)
If @error Then ExitLoop
$match = 0
Select
Case $opt = 0
If $case = 0 Then
If StringInStr($line, $search, 2) Then $match = 1
Else
If StringInStr($line, $search, 1) Then $match = 1
EndIf
Case $opt = 1
If $case = 0 Then
If StringCompare(StringLeft($line, StringLen($search)), $search, 2) = 0 Then $match = 1
Else
If StringCompare(StringLeft($line, StringLen($search)), $search, 1) = 0 Then $match = 1
EndIf
Case $opt = 2
If $case = 0 Then
If StringCompare(StringRight($line, StringLen($search)), $search, 2) = 0 Then $match = 1
Else
If StringCompare(StringRight($line, StringLen($search)), $search, 1) = 0 Then $match = 1
EndIf
EndSelect
If $match = 1 Then
FileWriteLine($write, $line)
$cnt += 1
EndIf
WEnd
FileClose($read)
FileClose($write)
If Not FileMove(@TempDir & "\~tmp", $target, 1) Then
SetError(3)
Return -1
EndIf
Return $cnt
EndFunc
Sauvegarder le fichier, le lancer en double cliquant dessus.
Sélectionner le fichier .txt que vous avez créé précedement, attendez le message de fin qui affichera le nombre d'occurences trouvées.
Le fichier de sortie aura exactement le même nom que celui que vous avez créé terminé par '_out'.[/quote]