Page 2 sur 2

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 20:52
par TT22
mikell a écrit :
jchd a écrit :Argh !
... un peu usant pour les nerfs
Bienvenue au club :mrgreen:
Et ouai, c'est un de mes talents naturels :mrgreen:

Bon sinon pour mon séparateur je fais comment ???

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 21:16
par mikell
Aucune idée, j'ai jamais utilisé ni appris à utiliser les bases de données, donc je laisse le soin de te répondre au chef jchd, avec une volupté intense :mrgreen:

@jchd
jchd a écrit :Bon je veux bien te faire un schéma SQLite quand j'aurai 5 minutes
Le fait est qu'un petit tutoriel sur le sujet serait une super idée :wink:

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 21:21
par TT22
mikell a écrit :Le fait est qu'un petit tutoriel sur le sujet serait une super idée :wink:
Ouai, je suis bien d'accord Image

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 22:25
par jchd
Avant de faire, il faut expliciter exactement ce dont on part et ce qu'on veut obtenir.
Tant que tu n'es pas enclin à rendre cette chose publique, rien n'est possible.

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 22:27
par jchd
Par ici peut-être ?
Ou là
ou bien encore ici
le choix ne manque pas mais il est certes plus restreint en français...

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 22:28
par TT22
jchd a écrit :Tant que tu n'es pas enclin à rendre CETTE CHOSE publique, rien n'est possible.
Quelle chose ?

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 22:49
par jchd
ça : il faut expliciter exactement ce dont on part et ce qu'on veut obtenir

Re: [..] Sauter des lignes dans un fichier ini

Posté : mar. 14 juin 2011 23:00
par mikell
@jchd : :mrgreen:

Re: [..] Sauter des lignes dans un fichier ini

Posté : mer. 15 juin 2011 11:31
par ZDS
Bonjour !

Regarde un peu ce genre d'algo :

Code : Tout sélectionner

Func extendedIniRead($filename, $section, $key)
    Local $value = IniRead($filename, $section, $key, "#")
    If $value = "#" Then
        Return ""
    ElseIf StringRight($value,1) = "#" Then
        $value = StringTrimRight($value,1) & extendedIniRead($filename, $section, $key&"_more")
    EndIf
    Return StringReplace($value,"\n",@CRLF,0,2)
EndFunc

Func extendedIniWrite($filename, $section, $key, $value)
    Local $valueToSet = StringReplace($value,@CRLF,"\n",0,2), $mark = "#"
    IniDelete($filename, $section, $key&"_more")
    If StringLen($valueToSet)>1000 Then
        extendedIniWrite($filename, $section, $key&"_more", StringTrimLeft($valueToSet,1000))
    Else
        $mark = ""
    EndIf
    IniWrite($filename, $section, $key, StringLeft($valueToSet, 1000)&$mark)
EndFunc
\n symbolise les retours à la ligne de la chaine a récupérer, le # à la fin d'une chaine signifie qu'elle a une suite, et une clef XXXX peut être suivie par une clef XXXX_more, puis XXXX_more_more, etc... bref si avec ça tu n'arrives à rien, mieux vaut peut-être laisser tomber et envoyer le besoin complet sur les "demandes de script" ^^

A bientôt !

PS: Ce n'est pas garanti sans erreur de code, mais l'algo est là, utilise un peu ta matière grise TT22

Re: [..] Sauter des lignes dans un fichier ini

Posté : mer. 15 juin 2011 13:55
par TT22
@ ZDS
T’aurai pas un exemple du ini ?

Re: [..] Sauter des lignes dans un fichier ini

Posté : mer. 15 juin 2011 14:15
par ZDS
ZDS a écrit :l'algo est là, utilise un peu ta matière grise TT22
Hum... Fais gaffe ça peut s'apparenter à de la fainéantise de bas étage là... ^^

Exemple de fichier INI :

Code : Tout sélectionner

[section]
clef=valeur de la ligne n°1\nvaleur de la ligne n°2\nvaleur de la #
clef_more=ligne n°3\nvaleur de la ligne n°4\n(antislash+n pour un #
clef_more_more=retour-chariot\net # en fin de ligne pour dire qu'#
clef_more_more_more=il y a une suite.
Exemple de script :

Code : Tout sélectionner

Func extendedIniRead($filename, $section, $key)
    Local $value = IniRead($filename, $section, $key, "#")
    If $value = "#" Then
        Return ""
    ElseIf StringRight($value,1) = "#" Then
        $value = StringTrimRight($value,1) & extendedIniRead($filename, $section, $key&"_more")
    EndIf
    Return StringReplace($value,"\n",@CRLF,0,2)
EndFunc

Func extendedIniWrite($filename, $section, $key, $value)
    Local $valueToSet = StringReplace($value,@CRLF,"\n",0,2), $mark = "#"
    IniDelete($filename, $section, $key&"_more")
    If StringLen($valueToSet)>1000 Then
        extendedIniWrite($filename, $section, $key&"_more", StringTrimLeft($valueToSet,1000))
    Else
        $mark = ""
    EndIf
    IniWrite($filename, $section, $key, StringLeft($valueToSet, 1000)&$mark)
EndFunc

Local $str = extendedIniRead("c:\test.ini", "section", "clef")
ConsoleWrite('{'&@CRLF&$str&@CRLF&'}'&@CRLF)
Resultat obtenu :

Code : Tout sélectionner

>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\******\IniAndLineFeed.au3" /autoit3dir "C:\Program Files\AutoIt3" /UserParams    
+>14:09:14 Starting AutoIt3Wrapper v.2.0.1.24    Environment(Language:0409  Keyboard:0000040C  OS:WIN_XP/Service Pack 3  CPU:X64 OS:X86)
>Running AU3Check (1.54.19.0)  from:C:\Program Files\AutoIt3
+>14:09:14 AU3Check ended.rc:0
>Running:(3.3.6.1):C:\Program Files\AutoIt3\autoit3.exe "C:\******\IniAndLineFeed.au3"    
{
valeur de la ligne n°1
valeur de la ligne n°2
valeur de la ligne n°3
valeur de la ligne n°4
(antislash+n pour un retour-chariot
et # en fin de ligne pour dire qu'il y a une suite.
}
+>14:09:14 AutoIT3.exe ended.rc:0
>Exit code: 0    Time: 1.902
PS: Tu abuses, c'est du niveau plus que débutant tu aurais pu chercher toi même... ^^

Re: [..] Sauter des lignes dans un fichier ini

Posté : mer. 15 juin 2011 14:36
par TT22
ZDS a écrit :Hum... Fais gaffe ça peut s'apparenter à de la fainéantise de bas étage là... ^^
C'est pas de la fainéantise mais j'avais pas bien compris tes histoires de \n et de # :oops:
Mais merci, je passe en résolut :D