Question
Lecture d'un fichier --> en CSV
- Fellerson
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 3 ans 2 mois - il y a 3 ans 2 mois #31027
par Fellerson
Lecture d'un fichier --> en CSV a été créé par Fellerson
Bonjour Messieurs,
je me permets de vous contacter pour vous demander une piste : un tuto ou un début de script. Mon objectif est très simple : Parcourir le fichier qui suit (exemple) et remonter que la partie "PRICE_DATABSE" dans un fichier CSV.
Le résultat devrait être le suivant :
Colonne A : Article --> ART1
Colonne B : Prix --> mr
chaque article (ART1, ART2) en dessous de "AH" dispose de son prix dans "mr"
à titre d'info, ce fichier ressemble très fortement à du JSON mais ce n'est pas un JSON ! C'est un LUA.
Merci, merci beaucoup par avance.
je me permets de vous contacter pour vous demander une piste : un tuto ou un début de script. Mon objectif est très simple : Parcourir le fichier qui suit (exemple) et remonter que la partie "PRICE_DATABSE" dans un fichier CSV.
Le résultat devrait être le suivant :
Colonne A : Article --> ART1
Colonne B : Prix --> mr
chaque article (ART1, ART2) en dessous de "AH" dispose de son prix dans "mr"
à titre d'info, ce fichier ressemble très fortement à du JSON mais ce n'est pas un JSON ! C'est un LUA.
Merci, merci beaucoup par avance.
PRICING_HISTORY = {
}
SHOPPING_LISTS = {
{
["items"] = {
},
["isRecents"] = 1,
["name"] = "Recherches récentes",
}, -- [1]
}
PRICE_DATABASE = {
["__dbversion"] = 4,
["AH"] = {
["ART1"] = {
["H3883"] = 1000000,
["mr"] = 1000000,
},
["ART2"] = {
["H3883"] = 53000,
["mr"] = 53000,
},
},
}
Dernière édition: il y a 3 ans 2 mois par Fellerson.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 3 ans 2 mois #31036
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Lecture d'un fichier --> en CSV
Salut,
le mieux serait d'utiliser LUA pour relire facilement ce fichier et le transformer en CSV.
Sinon un bricolage en PS :La regex ne prend que le dernier groupe d'accolades couplées, elle ne correspond donc qu'a l'exemple donné, c'est du copier-coller qui tombe en marche
le mieux serait d'utiliser LUA pour relire facilement ce fichier et le transformer en CSV.
Sinon un bricolage en PS :
$file='c:\temp\datas.lua'
@'
PRICING_HISTORY = {
}
SHOPPING_LISTS = {
{
["items"] = {
},
["isRecents"] = 1,
["name"] = "Recherches récentes",
}, -- [1]
}
PRICE_DATABASE = {
["__dbversion"] = 4,
["AH"] = {
["ART1"] = {
["H3883"] = 1000000,
["mr"] = 1000000,
},
["ART2"] = {
["H3883"] = 53000,
["mr"] = 53000,
},
},
}
'@ > $file
$S=get-content $file -raw
#https://stackoverflow.com/a/18129472
$regex= "^[^{}]*" +
"(" +
"((?'Open'{)[^{}]*)+" +
"((?'Close-Open'})[^{}]*)+" +
")*" +
"(?(Open)(?!))$"
$s -match $regex
$s2=$matches.close
$s2 -match $regex
$Articles=$matches.close
Foreach ($Article in ($Articles -split "(`r`n`|`n)"))
{
Write-Debug "article: $article"
switch -regex ($Article) {
'\["(?<Nom>.*?)"\] = {' {Write-Debug "`tNom"; $O='a'|Select Nom,Prix; $O.Nom=$matches.Nom; continue}
'\["mr"\] = (?<Prix>\d*),' {Write-Debug "`tPrix" ; $O.Prix= $matches.Prix; Write-output $O; continue }
}
}
#qq infos sur la balancing group en regex dotnet
#https://stackoverflow.com/questions/17003799/what-are-regular-expression-balancing-groups
#https://docs.microsoft.com/fr-fr/dotnet/standard/base-types/grouping-constructs-in-regular-expressions?redirectedfrom=MSDN#balancing_group_definition
#https://docs.microsoft.com/fr-fr/dotnet/standard/base-types/regular-expression-language-quick-reference
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Fellerson
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 3 ans 2 mois - il y a 3 ans 2 mois #31038
par Fellerson
Réponse de Fellerson sur le sujet Lecture d'un fichier --> en CSV
Wow ! je suis bluffé !! merci beaucoup c'est exactement ça .. wow.....
merci beaucoup
merci
merci beaucoup
merci
Dernière édition: il y a 3 ans 2 mois par Fellerson.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.100 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Lecture d'un fichier --> en CSV