Modifier fichier .ini

Signaler
Messages postés
21
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
20 février 2012
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour,
Voila mon fichier .ini

resolution 1024 768
fullscreen 1
texture 1
view 2
detail 2
distant 1
shadow 1
bloom 0

Je voudrais modifier le "2" de la ligne "view" par un "0" et récupérer les information de la ligne résolution

Merci pour votre futur aide.

10 réponses

Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Salut,

Tu crois pas que tu pousses un peu... Si tu t'étais donné la peine de faire un poil de recher tu aurai trouvé :
http://www.vbfrance.com/recherche.aspx?r=fichier+ini

Fait un petit effort car la c'est abusé.
Tu connais le dicton : Il faut pas pousser mèmère dans la nature sous pretexte qu'elle aime la nature...

La prochaine fois fait une recherche avant de poster...
Et n'oubli pas de valider...

Bonne soirée.

SLB
Messages postés
21
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
20 février 2012

oui mais dans mon ini y a pas

[Appli 1]
variable1=123
variable2=456
variable3="798"

moi ces sa qui a

resolution 1024 768
fullscreen 1
texture 1
view 2
detail 2
distant 1
shadow 1
bloom 0
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
et alors quoi tu n'as qu'a adapter un peu le code c'est pas sorcier  quand même


tu voudrais quandmême pas qu'on le fasse à ta place? hein ?dis une fois ?










Bonjour chez vous !
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
"...oui mais dans mon ini y a pas ..."

Tout simplement parce que ton fichier ini n'est pas un vrai fichier ini. C'est un banal fichier texte.

Un fichier ini est certes lui aussi un banal fichier texte, mais structuré d'une certaine manière avec surtout des fonctions du système d'exploitation capables d'utiliser cette struturation.

Ici tu ne pourra pas utiliser ces fonctions sans formater correctement ton fichier. Ceci dit tu peut quand même utiliser ton fichier texte ainsi en utilisant d'autres fonctions, voire tes propres fonctions.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Bonsoir,
"Je voudrais modifier le "2" de la ligne "view" par un "0" et récupérer les information de la ligne résolution"
Oui et alors? Pourquoi ne le fais-tu pas?

Dim Datas As New Dictionary(Of String, String)
Dim Lines As String() = IO.File.ReadAllLines("C:\Fichier.txt")
For Each Line As String In Lines
    Dim Key As String = Line.SubString(0, Line.IndexOf(" "))
    Dim Value As String = Line.SubString(Line.IndexOf(" ") + 1)
    Datas.Add(Key, Value)
Next

Datas("view") = 0
Dim Res As String = Datas("resolution")
   
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
kevin c'est du vb6 ici !

Bonjour chez vous !
Messages postés
21
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
20 février 2012

par se que je ne peut pas vue que je fait un lanceur pour jeu et je ne peut pas modifier le jeu il a été fait comme sa est je peut rien y faire voila
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
"kevin c'est du vb6 ici !  "

Oups, ouais merci Gillardg
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
salut,
allez juste pour la rigolade... et la structure imaginaire ^^


<hr size="2" width="100%" />

'Form1.frm, contient juste
une listbox nommée List1


Option Explicit


Private 
cFile 
As 
New Cls_Fake




Private Sub 
Form_Load()


'   charge

    cFile.ReadFile "C:\faux_ini.txt"

'  
affiche
    Call Display
    Me.Show

'   message ; on
change
    MsgBox "on
va modifier la valeur de VIEW qui est de " & cFile.Item("view").Value
    cFile.Item("view").Value = CStr(Timer) '<- valeur aléatoire, à toi de mettre "0"

'   on sauve
    cFile.WriteFile

'   on recharge
juste pour vérifier, mais la collection est toujours chargée
    cFile.ReadFile

'  
fin
    Call Display
    MsgBox "ayé :)"
End Sub

Private Sub Display()
    List1.Clear

    Dim v As Cls_Item
    For Each v In cFile.Items
        List1.AddItem v.Name & " =
'" & v.Value & "'"
    Next v
End Sub

<hr size="2" width="100%" />

'Cls_Fake.cls


Option Explicit




Dim 
sPathFile 
As String


Public 
Items 
As 
Collection




Public Property Get 
Item(
ByVal 
vIndex 
As Variant
)
As
Cls_Item

    Dim v As Cls_Item
    For Each v In Me.Items
        If v.Name = vIndex Then Set Item = v: Exit For
    Next v
    Set v = Nothing
End Property
Public Property Let Item(ByVal vIndex As Variant, ByVal vValue As Cls_Item)
    Set Me.Items.Item(vIndex) = vValue
End Property

Public Sub ReadFile(Optional ByVal sPath As Variant)
    If IsMissing(sPath) Then sPath = sPathFile
    sPathFile = sPath
    
    Dim FF As Integer, asLines() As String
    FF = FreeFile
    Open sPathFile For Input As #FF
        asLines = Split(Input(LOF(FF), 1), vbCrLf)
    Close #FF

'   charge la collection
    Set Me.Items = New Collection
    Dim i As Integer, p As Integer, v As Cls_Item
    For i = 0 To UBound(asLines)
        If LenB(asLines(i)) Then
            p = InStr(1, asLines(i), " ")
            Set v = New Cls_Item
            v.Name = Left$(asLines(i), p - 1)
            v.Value = Mid$(asLines(i), p + 1)
            Me.Items.Add v
            Set v = Nothing
        End If
    Next i
    Erase asLines
End Sub

Public Sub WriteFile()
    Dim FF As Integer, v As Cls_Item
    FF = FreeFile
    Open sPathFile For Output As #FF
        For Each v In Me.Items
        Print #FF, v.Name & " " & v.Value
        Next v
    Close #FF
    Set v = Nothing
End Sub

<hr size="2" width="100%" />

'Cls_Item.cls


Option Explicit


Public 
Name 
As String


Public 
Value 
As String



<hr size="2" width="100%" />















<hr size="2" width="100%" />


il y a plus simple, mais moins plaisant :)
quoi que..., quoi de plus simple que copier/coller

++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
il y a évidemment moins plaisant, toujours en copier/coller

juste :
Call ChangeWords("view 2", "view 0", "C:\faux_ini.txt")

en utilisant ce snippet :
http://www.codyx.org/snippet_remplacer-chaine-autre-dans-fichier_187.aspx

et là effectivement, cf premier post, il suffisait de chercher un court instant

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp