Ecrire dans une ligne

Signaler
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013
-
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013
-
Bonjour, je souhaite écrire dans un fichier ini, jusqu'ici pas de soucis, mais écrire soit à une certaine ligne soit après que l'application rencontre un certain mot, exemple :

Fichier ini:

test
test
test
--->ici<---
test
test
test

Est-ce possible sans api ? Merci d'avance

9 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
salut,

c'est un fichier x çà, pas un ini
ini n'est pas juste une extension mais une architecture de fichier, à respecter donc (section, libellé, valeur)

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Bonjour,

Un fichier ini se compose comme tel :
[toto]
lib1=
lib2=
etc...
Donc la ligne tu vas la choisir si tu écris dans ton fichier de type INI
Ta question est mal posée...

Merci

S.L.B.
<hr />
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
@PCPT :
tu as été plus rapide que moi

S.L.B.
<hr />
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

Oui désolé, mon fichier est bien composé de section etc, c'était juste un exemple, ce qu'il me faudrais c'est juste écrire une ligne en plus à la fin d'un paragraphe, exemple :

[toto]
lib=0
lib=1
lib=2
-->ICI<--
[titi]
lib=10
lib=12
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
un fichier INI se lisant par sa structure, on ne dispose pas de sa position dans sa section, elle n'intervient pas dans sa lecture

si son "organisation visuelle" t'importe, il faut le pré-remplir (manuellement ou par code, alors enregistré dans l'ordre d'appel)
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

Hum, ça me parait absurde, il n'y a pas de fonction qui sache aller pointer sur une ligne précise, et rajouter une ligne ?
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Re,

Option Explicit


'-- Déclaration des fonctions API
Private Declare Function GetPrivateProfileString Lib "kernel32" _
                         Alias "GetPrivateProfileStringA" _
                        (ByVal lpApplicationName As String, _
                         ByVal lpKeyName As Any, _
                         ByVal lpDefault As String, _
                         ByVal lpReturnedString As String, _
                         ByVal nSize As Long, _
                         ByVal lpFileName As String) As Long


Private Declare Function WritePrivateProfileString Lib "kernel32" _
                         Alias "WritePrivateProfileStringA" _
                        (ByVal lpApplicationName As String, _
                         ByVal lpKeyName As Any, _
                         ByVal lpString As Any, _
                         ByVal lpFileName As String) As Long
                        
'********************************************************************************
'* Fonction permettant l'écriture dans un fichier INI
'********************************************************************************
Public Function EcritDansFichierIni(section As String, _
                                     Cle As String, _
                                     Valeur As String, _
                                     Fichier As String) As Long
            
    EcritDansFichierIni = WritePrivateProfileString(section, Cle, Valeur, Fichier)


End Function


'********************************************************************************
'* Fonction permettant la lecture dans un fichier INI
'********************************************************************************
Public Function LitDansFichierIni(section As String, _
                                   Cle As String, _
                                   Fichier As String, _
                                   Optional ValeurParDefaut As String = "") As String


Dim strReturn As String
   
    strReturn = String(255, 0)
    GetPrivateProfileString section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
    LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)


End Function




Je comprends pas ce que tu veux...
Ceci est le code pour lire et écrire dans un fichier ini... Dans la partie Ecrire tu n'a qu'a lui donner les renseignements...
Bon courage





S.L.B.
<hr />
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
c'est CHOISIR d'utiliser un fichier structuré et ne pas utiliser les API prévues pour qui est absurde

dans ce cas (ne pas respecter la structure), il faut choisir de coder sans passer par ces API RELATIVES A LA STRUCTURE, c'est tout

et dans ce cas il faut utiliser les fonctions accessibles par le framework, classe system.IO, avec le stream prévu pour

tu auras des exemples sur www.codyx.org

ps : pour ne pas "perturber" l'utilisateur, dans ce cas ne nomme pas ton fichier xxx.INI mais plutôt xxx.DAT par exemple

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

J'ai trouvé la fonction qu'il me faut avec les API: SetPrivateProfileString, par contre comment l'utiliser je ne trouve pas de tuto la dessus.