Question Récuperer données

Plus d'informations
il y a 13 ans 1 mois #13875 par julien
Récuperer données a été créé par julien
Bonjour à tous,
Merci à vous pour ce site que je trouve très bien fait.

J'ai des bases en java et C#
Et ici on m'a demandé de faire un petit powershell pour récuprerer des données d'un fichier .txt

Fichier source .txt =
Nom:LeNom:
Prénom:Georges:
Datedenaissance:24/07/1980:
Matri:098745:
Département:comptabilité:
Téléphone:024895647:
Email:lemail@personnel.be:
Remarque:aucune:

Je dois récuperer par ligne ce qui se trouve entre les \":\"
Et mettre chaque valeur reçu dans une variable propre.

donc pour le prénom => $prenom = Georges
etc...

D'avance merci pour votre aide, parceque je m'emmele les pinceaux...

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 1 mois #13876 par SiSMik
Réponse de SiSMik sur le sujet Re:Récuperer données
Bonjour,

Tu t'emmêles les pinceaux ?
Si tu nous montrais un bout de code qu'on regarde ça avec toi ;)

@+

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 1 mois #13947 par julien
Réponse de julien sur le sujet Re:Récuperer données
Désolé j'etais à l'étrangé !!
voic imon code

$info=@{}
get-content \"C:\test\FICHIER.txt\"| foreach {
$server, $info.$server = $_.split(\":\")

$nom = $info.Nom;
$prenom = $info.Prénom;

}


Je suis pas doué :whistle: :blush:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 1 mois #13950 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Récuperer données
Salut,
une solution, pour le fun :) :
[code:1]
$FileName=\"C:\temp\datas.txt\"

#Le fichier définition des comptes,
# une définition regroupe 8 lignes
@\"
Nom:LeNom:
Prénom:Georges:
Datedenaissance:24/07/1980:
Matri:098745:
Département:comptabilité:
Téléphone:024895647:
Email:lemail@personnel.be:
Remarque:aucune:
Nom:«»Second:
Prénom:Jean:
Datedenaissance:07/01/1990:
Matri:008735:
Département:comptabilité:
Téléphone:024895652:
Email:«»Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.:
Remarque:aucune:
\"@ > $FileName

function ConvertTo-NoteProperty{
#Crée un membre PSNoteProperty
#On construit une définition de membre à partir d'une ligne structuré
param (
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
[string]$Line
)
process {
#Découpage du nom de membre et de sa valeur
$Params= $Line.Trim(':').Split(':')
Write-Debug \"Create property '$($Params[0])' from `\"$Line`\"\"
#Renvoi l'objet dans le pipline
New-Object System.Management.Automation.PSNoteProperty($Params[0],$Params[1])
}
}

#Nombre de propriètés à construire
$NbProperties=8

#Lit par bloc de 8 lignes
#$T est un tableau de tableau
$T=Get-Content $FileName -ReadCount $NbProperties

$Account=$T|
#Pour chaque tableau de ligne de 'définiton' de membre d'un compte
Foreach {
#Crée un objet sans proprièté
$CurrentAccount=New-Object PsObject
#Donne un pseudo type à l'objet
$CurrentAccount.PsObject.TypeNames.Insert(0,\"MyAccountType\"«»)

#On crée un membre par ligne
$_|
ConvertTo-NoteProperty|
Foreach-Object {
Write-Debug \"`tAdd property $($_.Name)\"
#Ajoute une propriété dans la liste des propriétés de l'objet personnalisé
# On manipule directement des membres de l'objet (dynamisme)
$CurrentAccount.PsObject.Properties.Add($_)
}
$CurrentAccount
}

#Tableau contenant deux objets
$Account
[/code:1]
Bonne lecture.

Message édité par: Laurent Dardenne, à: 13/02/13 10:51<br><br>Message édité par: Laurent Dardenne, à: 13/02/13 16:56

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 1 mois #13956 par julien
Réponse de julien sur le sujet Re:Récuperer données
Laurent Dardenne merci pour ce code
je vais le lire et tester tout ça !
;)

L'affichage est correct sur la console
cependant j'ai ce message plusisuers fois :
[code:1]ConvertTo-NoteProperty : Impossible de lier l'argument au paramètre « Line », car il s'agit d'une chaîne vide.
Au caractère \\admin.ulb.priv\data\Utilisateurs\jrassart\mes documents\powershell\Sans titre4.ps1:41 : 5
+ ConvertTo-NoteProperty|
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:«»String) [ConvertTo-NoteProperty], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,ConvertTo-NoteProperty
[/code:1]

Dans mon fichier source je n'ai pas de ligne vide mai splutot des zones \&quot;non remplies\&quot; mais je ne suis pas certains que cela vienne de là car l'affichage final est correct bien que déccallé come si c'était 2 tableaux distinct et non un seul
Nom : CAUFRIEZ
Prénom : Jules
Datedenaissance : 14/02/1975
MatriculeULB : 085214
Département : informatique
Téléphone : 0475123689
Ancienétudiant : Non

Matriculeétudiant :
NetId :
Email :
Question : Quelestvotresportfavori?
Réponseàlaquestion : football
Remarque : aucune
<br><br>Message édité par: novice.ps1, à: 13/02/13 14:52

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 1 mois #13958 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Récuperer données
novice.ps1 écrit:

Dans mon fichier source je n'ai pas de ligne vide mais plutot des zones \&quot;non remplies\&quot; mais je ne suis pas certains que cela vienne de là

J'ai oubliè de préciser que le code est basé sur une structure supposée, dans ton cas il faut la connaitre précisément pour utiliser ce type de code. En tout cas connaitre le nombre de champs max possible et le 'token' de début, à priori c'est le champ 'Nom'.
novice.ps1 écrit:

Dans mon fichier source je n'ai pas de ligne vide mais plutot des zones \&quot;non remplies\&quot;

Si tu récupères les données avec Get-Content cela reste une ligne avec un contenu différent de ceux 'correctement' renseignés.

Si tu n'as pas le détail de ta structure de données, ce n'est pas la peine d'aller plus loin.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.051 secondes
Propulsé par Kunena