Question traitement d'une variable texte

Plus d'informations
il y a 13 ans 8 mois #12278 par haquet
Bonjour
Je cherche à traiter une variable dans la quelle se trouve du texte, je voudrai :
- supprimer les ' (apostrophe) pour ne pas perturber le script powershell.
- supprimer les lignes vides.
- et encoder en utf8 le texte
et le renvoyer dans une nouvelle variable.
Merci d'avance à celui qui pourra m'aider.:cheer:

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

Plus d'informations
il y a 13 ans 8 mois #12279 par Richard Lazaro
Bonjour,

Au sein de cette communauté, nous ne réalisons pas des demandes mais aidons vraiment les gens.

Alors, je te propose de commencer un script et voici un peu de documentation pour cela :

msdn.microsoft.com/en-us/library/fk49wtc1.aspx
(même principe que l'opérateur -replace)

msdn.microsoft.com/en-us/library/system.string.isnullorempty

bytes.com/topic/c-sharp/answers/483446-how-utf-8-encode-string

Aprés, je ne connais pas ton niveau en PowerShell et dev .Net

Bien Cordialement,
Richard Lazaro.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

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

Plus d'informations
il y a 13 ans 8 mois #12292 par haquet
Réponse de haquet sur le sujet Re:traitement d'une variable texte
# Bonjour
# Désolé pour mon post non conforme, voici mes points de blocage par rapport à mon projet
#
# ma variable de départ est du texte libre, avec des apostrophes et des guillemets.
# Je dois gérer les apostrophes et le format car les données seront déposées dans une base SQL.

#$F = 'ê é è' ç à' â €'

# traitement des apostrophes
# Cela fonctionne si il n'y a pas de guillemet dans la chaine, mais en cas de guillemet cela plante.
$F #chaine de départ ê é è' ç à 'â €
$F = \"$F\" -replace (\"'\",\"''\")
$F #chaine après traitement ê é è'' ç à ''â €

#Convertir UTF8 en SQL_Latin1_Général_CP1_CI_AS
# chaine transformée en binaire
$bytes = [System.Text.Encoding]::UTF8.GetBytes($F);
# puis si je re-transforme en HTF8 ça marche
$F2 = [System.Text.Encoding]::UTF8.Getstring($bytes);
# Il manque la conversion du genre :
#$convert = [System.Convert]::(28605).string($bytes);
# Mais j'ai un message d'erreur comme quoi la chaine est vide.

# Merci de votre aide :cheer:

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

Plus d'informations
il y a 13 ans 8 mois #12300 par Matthew BETTON
Bonsoir,

Je pense que si tu utilises les balises bbCode prévue pour le code, cela sera plus lisible et facilitera la tâche des membres de ce forum ;)

Utilises les balises [ c o d e ] pour marquer le début de ton code et [/c o d e] pour fermer le code (j'ai mis des espaces délibérément afin que le forum ne les interprètes pas).

Exemple de ce que cela peut donner :

[code:1]#Convertir UTF8 en SQL_Latin1_Général_CP1_CI_AS
# chaine transformée en binaire
$bytes = [System.Text.Encoding]::UTF8.GetBytes($F);
[/code:1]

Aussi, évites les commentaires dans ton code et met les en dehors : ça sera encore plus simple à lire.

@ +

Matthew<br><br>Message édité par: Matthew BETTON, à: 2/07/12 20:10

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

Plus d'informations
il y a 13 ans 8 mois #12317 par haquet
Réponse de haquet sur le sujet Re:traitement d'une variable texte
Ma variable de départ est du texte libre, avec des apostrophes et des guillemets.
Je dois gérer les apostrophes et le format car les données seront déposées dans une base SQL.

Le traitement des apostrophe fonctionne si il n'y a pas de guillemet dans la chaine, mais en cas de guillemet cela plante car les guillemets rompent la chaine de caractère.
chaine de départ ê é è' ç à 'â €
chaine après traitement ê é è'' ç à ''â €
Je cherche donc a traiter les guillement dans mon code

Je dois également Convertir UTF8 en SQL_Latin1_Général_CP1_CI_AS, mais j'ai un message d'erreur comme quoi la chaine est vide.

Merci de votre aide

[code:1]# traitement des apostrophes
#$F = 'ê é è' ç à' â €'
$F = \&quot;$F\&quot; -replace (\&quot;'\&quot;,\&quot;''\&quot;)


# chaine transformée en binaire &gt; OK
$bytes = [System.Text.Encoding]::UTF8.GetBytes($F);
# pour test transformée de binaire en HTF8 &gt; Ok
$F2 = [System.Text.Encoding]::UTF8.Getstring($bytes);
# conversion en latin 9 &gt; KO
$convert = [System.Convert]:: (28605).string($bytes);
[/code:1]

Message édité par: Dan_H, à: 3/07/12 10:59<br><br>Message édité par: Dan_H, à: 3/07/12 12:33

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

Plus d'informations
il y a 13 ans 8 mois #12344 par haquet
Réponse de haquet sur le sujet Re:traitement d'une variable texte
J'ai trouvé une solution concernant l'encodage et la gestion des caractères accentués, les variables sont illisibles dans l'interface powershell mais s'affichent correctement dans mon application. :cheer:
Je cherche toujours à supprimer les lignes vides du texte se trouvant dans ma variable, si quelqu'un a une idée.:(
[code:1]
$bytes = [System.Text.Encoding]::UTF8.GetBytes($F);
$class = System.Text.Encoding]::default.GetString($bytes)
[/code:1]<br><br>Message édité par: Dan_H, à: 5/07/12 14:13

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

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