[..] Exception de chaine de caractère

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

[..] Exception de chaine de caractère

#1

Message par mystere »

Bonjour dans la continuité de mon programme je cherche à faire des exceptions de code à la compression de fichier source ou de fichier texte. Pour sella l’utilisateur cliquera sur un bouton ajouter dans la gui et inséra son code. Ensuite le scripte ouvre le ou les fichiers et recherche le bloque de code au caractère près. Si il trouve le bloque ou les bloque de code alors il fait la compression sauf pour ces lignes de code, si il ne trouve pas le bloque de code alors il ne fait pas la compression et envoi un msgbox pour avertir l’utilisateur.

Je cherche à faire ceci car certaine société comme Google ne veule pas que on modifie leur code. Bien que théoriquement je ne modifie pas leur code mais juste le compressé, on m’a fait comprendre sur le forum de Google de ne pas prendre de risque. Mais sa c’est une autre histoire.

Voici mon code source au complet.
► Afficher le texte
Commant faire ceci ?
Modifié en dernier par mystere le dim. 19 déc. 2010 18:44, modifié 3 fois.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#2

Message par zeshrek »

Heuuuu... ca serait avec plaisir que je te donnerai un coup de main, mais pour cela j'ai besoin d'éclaircissements.
En lisant ton message, je me pose 2 questions :
1/ Qu'est ce que c'est que ces "exceptions de code" ?
2/ Que vient faire google dans l'histoire ? Tu parles de fichiers source ou de fichiers textes...
Du coup, je me dis, bon, on va voir ca de plus pret, et je veux lancer ton script... et là il manque les include
3/ Pourquoi tu ne met pas les include de ton source ? Perso, je vais pas passer 2h a les identifier pour pouvoir tester ton script.
Si vis pacem para bellum
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#3

Message par mystere »

Les exception de code peuvent être par exemple du code de Google ad sens, Google Analytics, ou n'importe quel autre code d'une société qui ne veulent pas qu'on modifie leur code. Du genre :
sans exception de code

<debut de mon code source><code d'une société><fin de mon code source>

avec exception de code

<debut de mon code source>
<code d'une société>
<fin de mon code source>

Google ce n'ai qu'un exemple d'une société qui ne veule pas que on modifie leur code source. Dans la compression on ne modifie pas leur code source, on le compresse. J'avais posé la question sur le forum de Google ad sens, mais on m'a clairement dit de ne pas prendre de risque étant donné que on ne peut pas contacté directement le support de Google pour leur posé ce genre de question. Je prefere donc ne pas prendre de risque par peur d evoir mon compte ad sens banni. Actuellement pour faire cette exception de code je le fait manuellement, mais ses vite énervant quand on modifie son code source d'une page html ou php...

Je parle de fichier source de type html, php, js, css... et de fichier texte. l'intérêt de ce programme n'est pas trop de compresser des fichiers texte, mais bon j'obtiens les même résultats, donc tan qu'a faire l'ingérer également.

Je viens de maitre les includes dans le code Autoit.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#4

Message par zeshrek »

Bon, j'ai toujours rien compris a ton concept d'exception de code...
Alors j'ai voulu faire tourner ton code, et... Tu utilises quelle version de FileListToArrayNT.au3 ?
Quand je met la 1, j'ai ce message d'erreur :
C:\Users\Steph\Desktop\AutoitScripts\FileListToArrayNT.au3(128,156) : ERROR: _FileListToArrayNT7(): undefined function.
Et quand je met la 7 j'ai ca :
C:\Users\Steph\Desktop\AutoitScripts\a_ecraser.au3(114,90) : ERROR: _filelisttoarraynt(): undefined function.
Tu aurais pas bidouillé l'UDF par hasard ?

Bon, sinon, faisons simple. Tu butes sur quoi comme probleme ? Concretement comment on peut t'aider ?
Si vis pacem para bellum
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#5

Message par mystere »

Non je n’ai pas bidouillé l’udf. Je la mets en téléchargement sur ce post. Pour info je les télécharger sur ce post.

http://www.autoitscript.fr/forum/viewto ... istToArray

Concrètement je bloque sur ceci.

Code : Tout sélectionner

$recherche=_filelisttoarraynt($destination2 & "\","*.php;*.html;*.txt",1,2,true)
for $for=1 to $recherche[0]
$lecture=fileread($recherche[$for])
$lecture=stringreplace($lecture,@crlf,"")
$fichier=fileopen($recherche[$for],2)
filewrite($fichier,$lecture)
fileclose($fichier)
Je ne sais pas quoi mètre âpres l’ouverture des fichiers trouvé pour que l’exception de code ce fasse. En faite pour faire simple d’âpres se qui me semble le plus logique, il faudrait que je recherche une chêne de caractère, mais qui prend en compte les retour chariot. Je n’ai pas vus de fonctions qui traité ceci dans la doc Autoit.

Du genre :

Code : Tout sélectionner

$recherche=_filelisttoarraynt($destination2 & "\","*.php;*.html;*.txt",1,2,true)
for $for=1 to $recherche[0]
$lecture=fileread($recherche[$for])

if [color=#FF0000]; Fonction ??? (fonction qui recherche le code a excepter a la compression. La variable est récupéré dans la gui $valider)[/color] then
[color=#FF0000]; $lecture= ; Fonction ??? (Fonction qui récupère tout le texte [b]avan[/b] que le bloc de code d’exception ne soit détecté)
$lecture2= ; Fonction ??? (Fonction qui récupère tout le texte [b]après[/b] que le bloc de code d’exception ne soit détecté)

; Si le bloc de code est trouvé plusieur foie alors on fait la maniplation autant de foie que de bloc de code ont étai trouver[/color]


$lecture=stringreplace($lecture,@crlf,"")
$lecture2=stringreplace($lecture,@crlf,"")
$fichier=fileopen($recherche[$for],2)
filewrite($fichier,$lecture)
fileclose($fichier)
else 
msgbox(4096,"erreur","erreur")
endif
J’ai mis en rouge ce que je n’arrive pas a faire.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#6

Message par zeshrek »

Tu devrais arriver a adapter ca a ton besoin. J'ai nommé les variables de facon a ce que tu puisses les identifier facilement par rapport aux tiennes

Code : Tout sélectionner

_Recherche($TexteTotal, $ChaineRecherchee)

Func _Recherche($TexteTotal, $ChaineRecherchee)
    $PositionChaineRecherchee = StringInStr($TexteTotal, $ChaineRecherchee) 
    While 1
        If $PositionChaineRecherchee <> 0 Then
            $lecture1 = StringLeft($TexteTotal, $PositionChaineRecherchee)
            $lecture2 = StringRight($TexteTotal, StringLen($TexteTotal) - $PositionChaineRecherchee - StringLen($ChaineRecherchee))
            _Ta_Fonction($lecture1, $lecture2, $ChaineRecherchee)
        Else
            ExitLoop 
        EndIf
    WEnd
EndFunc

Func _Ta_Fonction($lecture1, $lecture2, $ChaineRecherchee)
    ; ici tu fais ce que tu as a faire
    ; avec tes 2 bouts de texte, et le texte recherché
EndFunc
Si vis pacem para bellum
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#7

Message par mystere »

Merci de ta réponse zeshrek, j’ai essayé ce que tu n’a dit, mais maintenant j’ai une erreure comme quoi une variable a la ligne 118 n'a pas étai déclaré.

Voici mon code. J’ai mis en rouge ce que j’ai modifié.
► Afficher le texte
Modifié en dernier par mystere le mar. 21 déc. 2010 18:55, modifié 3 fois.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#8

Message par zeshrek »

mystere a écrit :Merci de ta réponse zeshrek, j’ai essayé ce que tu n’a dit, mais maintenant j’ai une erreur comme quoi une variable a la ligne 118 n’a pétai déclaré.
Hmmm.... la réponse est dans la question non ?
Si vis pacem para bellum
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#9

Message par mystere »

Pourtant je la déclare comme sa. Je ne comprends pas pourquoi sa ne fonctionne pas.

Code : Tout sélectionner

$code2=guictrlread($code)
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#10

Message par Jerome »

Coucou,

Code : Tout sélectionner

Global $code
Global $code2=guictrlread($code)
Pour plus d'informations, je vous invite à vous rendre sur cette page.






Jérôme
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#11

Message par mystere »

J’ai fait la modification que tu m’à dit en ajoutent en haut de mon code juste âpres les includes.

Code : Tout sélectionner

Global $code
Global $lecture
Global $code2=guictrlread($code)
Je n’ai plus d’erreurs Autoit, mai maintenant, même la compression standard sans exception de code ne fonctionne plus.

A mon avis j’ai du me gourer dans ce passage.

Code : Tout sélectionner

Func _Recherche($lecture, $code2)
    $PositionChaineRecherchee = StringInStr($lecture, $code2) 
    While 1
        If $PositionChaineRecherchee <> 0 Then
            $lecture1 = StringLeft($lecture, $PositionChaineRecherchee)
            $lecture2 = StringRight($lecture, StringLen($lecture) - $PositionChaineRecherchee - StringLen($code2))
            _Ta_Fonction($lecture1, $lecture2, $code2)
        Else
            ExitLoop 
        EndIf
    WEnd
EndFunc

Func _Ta_Fonction($lecture1, $lecture2, $code2)
for $for=1 to $recherche[0]
$lecture=fileread($recherche[$for])
$lecture=stringreplace($lecture,@crlf,"")
$fichier=fileopen($recherche[$for],2)
filewrite($fichier,$lecture)
fileclose($fichier)
next
EndFunc
Comment résoudre ce problème ?
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#12

Message par Jerome »

Faut réfléchir un peu.

Tu dit que tu as mis :

Code : Tout sélectionner

Global $code2=guictrlread($code)
Juste après les includes ???


Si c'est possible, il serait bien d'avoir la dernière version de votre code.


Sinon essayer ceci :
► Afficher le texte


Jérôme
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Exception de chaine de caractère

#13

Message par mystere »

Merci de ta réponse Jérome, j’ai prix exactement le code que tu m’a passé, mais sa ne fonctionne toujours pas. La compression standard sans exception ne ce fait pas, encore moins celle avec exception de code.
Répondre