Supprimer une ligne .ini [Résolu]

Messages postés
24
Date d'inscription
mercredi 17 octobre 2007
Dernière intervention
2 mars 2011
- - Dernière réponse : fyc95
Messages postés
6
Date d'inscription
jeudi 31 mai 2012
Dernière intervention
20 mars 2014
- 4 juin 2012 à 11:39
Bonjour,

Je souhaiterais Supprimer une ligne dans un fichier .INI et faire remonter les lignes d'après(VB.NET)
J'ai trouver plein de façon sur CS mais aucune n'est vraiment concluante
ou ne fait pas ce que je veux et je n'arrive pas à le modifier correctement.

Voilà ce que j'ai :

[b][Section1]
var1=Val1
var2=Val2

[Section2]
var3=Val3
var4=Val4

et je voudrais avoir après effacement

[Section1] 'supression de la ligne et pas de ligne vide après [Section1]
var2=Val2

[Section2]
var3=Val3
var4=Val4/b

Pour le moment j'arrive à écrire, à le lire et remplacer une Val.
Merci d'avance d'avance pour vos réponses.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Dernière intervention
12 mars 2011
3
Merci
Salut,
avec quel méthode tu remplace les lignes ?
Une méthode : Placer le fichier dans une
variable, le découper ligne par ligne,
supprimer la ligne, la remplacer par ""
en fonction des critères que tu aura définis toi même.
par exemple, verifier si [Section1] est présent,
et supprimer donc la ligne suivante (remplacer cette ligne
par "") puis réécrire le fichier mis à jour.
Instructions de lecture et écriture :
Dim str_texte As String '' Variable str_texte contiendra le fichier
str_texte = System.IO.File.ReadAllText(TextBox5.Text) '' Lit le fichier et le met dans str_texte
MessageBox.Show(str_texte) '' Affiche le fichier
Dim cut() as String '' Crée un tableau
cut = split(str_texte,environment.newline) '' Met le fichier ligne par ligne dans le tableau
'' donc cut(0) contiendra [Section1]
''      cut(1) contiendra var1=Val1 etc.
For i = 0 to cut.count -1 '' Lit le fichier ligne par ligne
if cut(i) = "var1=Val1" then cut(i) = "" '' Supprime la ligne
next i
dim resultat as string =""
for i = 0 to cut.count - 1
resultat &= cut(i) & envionment.newline
next i

System.IO.File.WriteAllText("result.ini", resultat) '' Ecrit le resultat en remplaçant l'ancien fichier

Après tout dépend des critères de mise à jour.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de raffika
Messages postés
24
Date d'inscription
mercredi 17 octobre 2007
Dernière intervention
2 mars 2011
3
Merci
Non c'est bon j'ai réussi à lui dire dire si ligne = vide copier la ligne d'après tout en faisant un +1 au compteur.

For i = 0 To cut.Count - 1
If cut(i) = "" Then
resultat &= cut(i + 1) & Environment.NewLine
i = +1
Else : resultat &= cut(i) & Environment.NewLine
End If
Next i

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Zag182
Messages postés
24
Date d'inscription
mercredi 17 octobre 2007
Dernière intervention
2 mars 2011
0
Merci
Merci beaucoup j'arrive enfin à supprimer une ligne... ^^
Par contre la suppression de la ligne maintenant vide ne se fait pas, Comment puis-je faire?

Merci Beaucoup!
Commenter la réponse de Zag182
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
au pire, les APIs WritePrivateProfileString & Co

sont là pour là pour ça

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
6
Date d'inscription
jeudi 31 mai 2012
Dernière intervention
20 mars 2014
0
Merci
Je viens de tester cette portion de code mais dès qu'il y a un accent dans le fichier, il le code mal (@?") donc le fichier devient faux, étant en vb2010, auriez vous une solution?
Commenter la réponse de fyc95
0
Merci
Bonjour,

Je n'ai pas testé et je ne sais pas si cela peut régler ton problème, mais tout d'un coup que ce serait la réponse.

Je suis tombé là-dessus par hasard.
Commenter la réponse de Utilisateur anonyme
Messages postés
6
Date d'inscription
jeudi 31 mai 2012
Dernière intervention
20 mars 2014
0
Merci
En fait il suffisait de mettre
str_texte = System.IO.File.ReadAllText("c:\fichier.ini", System.Text.Encoding.Default) '' Lit le fichier et le met dans str_texte
Commenter la réponse de fyc95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.