Code : Tout sélectionner
;==[Includes]===================================================================================================
#include <SQLite.au3>
#include <SQLite.dll.au3>
;==[Variables Globales]=========================================================================================
Global $sLocalSQLiteDll = @ScriptDir & "\sqlite3.dll"
Global $CSVFilePathToConvert, $aArrayCSVHeader, $SQLite
_Ini()
_InitSql()
_ConversionCSVToSQLite()
Func _Ini()
If FileExists(@UserProfileDir & "\CSVToSQLite") = 0 Then
DirCreate(@UserProfileDir & "\CSVToSQLite")
_FileCreate(@UserProfileDir & "\CSVToSQLite\Config.ini")
IniWriteSection(@UserProfileDir & "\CSVToSQLite\Config.ini", "User", "")
IniWrite(@UserProfileDir & "\CSVToSQLite\Config.ini", "User", "$CSVFilePathToConvert", "C:\temp")
IniWrite(@UserProfileDir & "\CSVToSQLite\Config.ini", "User", "$SQLite", "C:\temp")
EndIf
$SQLite = IniRead(@UserProfileDir & "\CSVToSQLite\Config.ini", "User", "$SQLite", "/!\ Fichier Config.ini erroné /!\")
$SQLite = $SQlite & "\MySQLiteBase.SQLite"
$CSVFilePathToConvert = IniRead(@UserProfileDir & "\CSVToSQLite\Config.ini", "User", "$CSVFilePathToConvert", "/!\ Fichier Config.ini erroné /!\")
EndFunc ;==>_IniUser
Func _CSVChoice()
Local $Path = FileOpenDialog("Choisir le fichier csv à convertir en base SQLite", $CSVFilePathToConvert, "CSV (*.csv)", 1)
If @error Then Exit
Return $Path
EndFunc ;==>_CSVChoice
Func _ConversionCSVToSQLite()
$MyCSVFile = _CSVChoice()
Dim $SQLiteHeader
;Récupération de la première ligne du fichier *.csv
_FileReadToArray($MyCSVFile, $aArrayCSVHeader)
$SQLiteHeader = StringReplace($aArrayCSVHeader[1], ";", ",") ;Remplacement des ";" par ","
_SQLite_Open($SQLite)
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Impossible de créer la Base de donnée!")
_SQLite_Exec(-1, "CREATE TABLE IF NOT EXISTS MyTableSQLite (" & $SQLiteHeader & ");")
;On insère les valeurs
If $aArrayCSVHeader[0] < 2 Then
MsgBox(16, "", "Aucune valeur dans le fichier csv")
Else
For $i = 2 To UBound($aArrayCSVHeader) - 1
$aArrayCSVHeader[$i]=StringReplace($aArrayCSVHeader[$i], ";", ", ") ;Remplacement des ; par ,
$aArrayCSVHeader[$i]=StringReplace($aArrayCSVHeader[$i], '"', "'") ;Remplacement des "
_SQLite_Exec(-1, "Insert Into MyTableSQLite (" & $SQLiteHeader & ") VALUES(" & $aArrayCSVHeader[$i] & ");")
Next
EndIf
EndFunc ;==>_CreateSQLite
Func _InitSql()
_SQLite_Startup($sLocalSQLiteDll, False, 1)
If @error Then
MsgBox(0, "Fichier manquant", "Le fichier SQLite3.dll est introuvable!")
Exit
EndIf
$Base_SQLite = _SQLite_Open($SQLite)
If @error > 0 Then
MsgBox(16, "SQLite Erreur", "La base ne peut être chargée!")
Exit
EndIf
OnAutoItExitRegister("_Exit_SQLite")
EndFunc ;==>_InitSql
Func _Exit_SQLite()
_SQLite_Close()
_SQLite_Shutdown()
EndFunc ;==>_Exit_SQLite