[R] Augmenter la taille d'un fichier
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Augmenter la taille d'un fichier
Bonsoir tout le monde, j'aimerais savoir si il était possible d'augmenter la taille d'un fichier grâce a autoit vous ne connaissez pas une fonctionne qui pourrait faire cela svp car ca fait plusieurs jours que je cherche et je n'ai rien trouver de super concluant!! Merci d'avances pour vos réponses et bonnes soirée.
Modifié en dernier par robin25 le mer. 25 août 2010 12:26, modifié 1 fois.
- moutelous
- Niveau 6

- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..]Augementer la taille d'un fichier
Bonsoir,
Oups ..... A part " Ecrire " dans un fichier je ne connais aucun moyen d'en augmenter sa taille !!!
Oups ..... A part " Ecrire " dans un fichier je ne connais aucun moyen d'en augmenter sa taille !!!
A+
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
De quelle taille voulez-vous augmenter le fichier ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Augmenter la taille d'un fichier
Ben en fait je voudrais réaliser un pumper ( un logiciel qui sert a augmenter la taille d'un fichier ) en autoit mais je ne sait pas ci c'est possible, quant a l'augmentation je pense que 1 ou 2 Méga sert déjà un bon début... J'ai observer sur le forum un script qui quand on exécute il double de volume donc je pense que c'est réalisable mais je n'ai encore trouver aucunes fonctions ou UDF qui permet de faire cela. Une idée? mercis d'avance pour vos réponses.
- moutelous
- Niveau 6

- Messages : 229
- Enregistré le : sam. 09 févr. 2008 19:51
- Localisation : Rennes
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Bonjour,
Quel est le type de fichier que vous voulez traiter ? Un "exe" ?
Quel est le type de fichier que vous voulez traiter ? Un "exe" ?
A+
- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
pour un fichier contenant des données en clair (texte, csv, xml, etc ...) il suffit d'ouvrir le fichier en mode ajout, de créer une ligne d'une taille donnée (attention aux éventuelles limitations sur la longueur des lignes)
puis d'écrire cette ligne à la fin du fichier autant de fois que nécessaire.
ci dessous un exemple :
Ce code crée de quoi ajouter 1Mo au fichier.
J'arrête de suite ceux qui s'exclameront : Olala, sa ligne elle fait que 1022 caractères, c'est pas bon !!!
en fait si : FileWriteLine insère automatiquement les caractères (@CRLF) pour passer à la ligne suivante, qui comptent donc pour deux octets de plus à chaque ligne, voila pourquoi mes lignes ne contiennent que 1022 caractères de tabulation.
Si en revanche votre envie est d'augmenter la taille d'un fichier binaire (exe, archive, autre ...) alors là c'est de suite plus compliqué, parce qu'étant donné le fichier vous risquez tout simplement de le corrompre ! (hé oui cela arrive même en rajoutant des caractères anodins en fin de fichier ...)
Pour un petit script compilé j'ai fait le test avec mon exemple, ça à l'air de bien se passer, on peut ajouter sans trop de casse des données ...
puis d'écrire cette ligne à la fin du fichier autant de fois que nécessaire.
ci dessous un exemple :
Code : Tout sélectionner
$file = FileOpen("exemple.txt", 1) ;le mode 1 c'est le mode écriture en "ajout à la fin du fichier"
$line = ""
for $i = 1 To 1022 step 1
$line &= @TAB
Next
for $j = 1 To 1024 Step 1
FileWriteLine($file, $line)
Next
J'arrête de suite ceux qui s'exclameront : Olala, sa ligne elle fait que 1022 caractères, c'est pas bon !!!
en fait si : FileWriteLine insère automatiquement les caractères (@CRLF) pour passer à la ligne suivante, qui comptent donc pour deux octets de plus à chaque ligne, voila pourquoi mes lignes ne contiennent que 1022 caractères de tabulation.
Si en revanche votre envie est d'augmenter la taille d'un fichier binaire (exe, archive, autre ...) alors là c'est de suite plus compliqué, parce qu'étant donné le fichier vous risquez tout simplement de le corrompre ! (hé oui cela arrive même en rajoutant des caractères anodins en fin de fichier ...)
Pour un petit script compilé j'ai fait le test avec mon exemple, ça à l'air de bien se passer, on peut ajouter sans trop de casse des données ...
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Il y a bien plus simple, cela marche pour tout type de fichiers :
Le code est simple : $SIZE = Lenomdelafonction
Et si vous désirez ajouter par exemple 3Mo il suffit de faire :
Voilà le code :
Ce code rajoute tout simplement des 0 "factices" qui augmentent la taille et ils permettent d'executer le programme sans avoir de souci !
Ce sont des "bytes null" !
Je te déconseille le GIGA ma RAM n'a pas apprécier
Avant :

Après :

Résultat final :

P.S : OSEF les images
Le code est simple : $SIZE = Lenomdelafonction
Et si vous désirez ajouter par exemple 3Mo il suffit de faire :
Code : Tout sélectionner
$SIZE = _MEGA_OCTETS()
$FILE = FileOpen(@ScriptDir&"\Explorer.exe", 1 +16)
FileWrite($FILE, $SIZE&$SIZE&$SIZE) ;On ajoute des $SIZE
Code : Tout sélectionner
$SIZE = _MEGA_OCTETS()
$FILE = FileOpen(@ScriptDir&"\Explorer.exe", 1 +16)
FileWrite($FILE, $SIZE)
Func _KILO_OCTETS()
Dim $TEMP_VALUE
For $i = 1 To 1024
$TEMP_VALUE &= 0
Next
Return $TEMP_VALUE
EndFunc
Func _MEGA_OCTETS()
Dim $TEMP_VALUE
For $i = 1 to 1024
$TEMP_VALUE &= _KILO_OCTETS()
Next
Return $TEMP_VALUE
EndFunc
Func _GIGA_OCTETS()
Dim $TEMP_VALUE
For $i = 1 to 1024
$TEMP_VALUE &= _MEGA_OCTETS()
Next
Return $TEMP_VALUE
EndFunc
Ce sont des "bytes null" !
Je te déconseille le GIGA ma RAM n'a pas apprécier
Avant :

Après :

Résultat final :

P.S : OSEF les images
- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
^____^
finalement en gros ça donne quasiment ce que je faisais ... le principe reste le même !
ta solution est un peu plus "formalisée" ... pas mal ^__^ et j'avoue ne pas avoir pensé à utiliser le mode d'écriture binaire pour le fichier ... ça permet de gagner un peu de temps par rapport à ma solution ...
je pense que ça résout la problématique posée ? si tel est le cas merci de le signaler par un [R] au début du titre du premier message .
finalement en gros ça donne quasiment ce que je faisais ... le principe reste le même !
ta solution est un peu plus "formalisée" ... pas mal ^__^ et j'avoue ne pas avoir pensé à utiliser le mode d'écriture binaire pour le fichier ... ça permet de gagner un peu de temps par rapport à ma solution ...
je pense que ça résout la problématique posée ? si tel est le cas merci de le signaler par un [R] au début du titre du premier message .
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Ce fut un de mes premiers Script 
Il utilise énormément les ressources de votre RAM !
Il utilise énormément les ressources de votre RAM !
- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
tu m'étonne ^__^ !
c'est vrai que pour un système un peu léger il est déconseillé de trop utiliser ces fonctions ^___^
d'ailleurs une petite optimisation si tu veux mon avis :
au lieu de construire une chaine de caractères qui fait 1 giga (ouille la RAM !!!! ô_O), il faudrait chercher une solution pour que tes fonctions prennent le handle du fichier en paramètre, et fassent plutôt 1024 écritures de 1Mo dans le fichier (ou 1024*1024 écritures de 1Ko)
ça sera légèrement plus lent parce que : un peu plus d'accès disque, un peu plus d'opérations processeur,
mais 1024 fois moins gourmand en RAM (ou 1024*1024 fois moins suivant le cas)
d'ailleurs je serais curieux si tu peux faire des tests sur ta machine (je vois que tu as un quadcore) pour voir si en temps ça mets vraiment beaucoup plus ou bien si ça se contente de consommer un peu plus le CPU ... ^__^
si t'as le temps ça serait cool ^__^
(je regarde ça ce soir sur mon pc qui n'a que 3 coeurs)
c'est vrai que pour un système un peu léger il est déconseillé de trop utiliser ces fonctions ^___^
d'ailleurs une petite optimisation si tu veux mon avis :
au lieu de construire une chaine de caractères qui fait 1 giga (ouille la RAM !!!! ô_O), il faudrait chercher une solution pour que tes fonctions prennent le handle du fichier en paramètre, et fassent plutôt 1024 écritures de 1Mo dans le fichier (ou 1024*1024 écritures de 1Ko)
ça sera légèrement plus lent parce que : un peu plus d'accès disque, un peu plus d'opérations processeur,
mais 1024 fois moins gourmand en RAM (ou 1024*1024 fois moins suivant le cas)
d'ailleurs je serais curieux si tu peux faire des tests sur ta machine (je vois que tu as un quadcore) pour voir si en temps ça mets vraiment beaucoup plus ou bien si ça se contente de consommer un peu plus le CPU ... ^__^
si t'as le temps ça serait cool ^__^
(je regarde ça ce soir sur mon pc qui n'a que 3 coeurs)
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Pas de souci, dans la soirée [Très Tard] je te dit tout sa 
- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
merci ^__^
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Prem's ...
Bon, alors sur mon portable C2D 1,66Ghz avec 2,5Go de RAM, j'annonce :
de 1Ko à 100Mo => 3.68s
de 100Mo à 200Mo => 4.56s
de 1Ko à 1Go => 29.45s
Quand à l'utilisation CPU, je dirait environs 15-25% pour le script.
En fait lors de la création du fichier de 1Go, j'ai vu le % de CPU varier entre 18% et 60%.
Voici le code :
Bon, alors sur mon portable C2D 1,66Ghz avec 2,5Go de RAM, j'annonce :
de 1Ko à 100Mo => 3.68s
de 100Mo à 200Mo => 4.56s
de 1Ko à 1Go => 29.45s
Quand à l'utilisation CPU, je dirait environs 15-25% pour le script.
En fait lors de la création du fichier de 1Go, j'ai vu le % de CPU varier entre 18% et 60%.
Voici le code :
► Afficher le texte
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Pour moi : [Pc de Bureau | Quadcore | 2.93GHz | RAM 4Go | OS : Seven (x64)]
de 1Ko à 100Mo => 1.13s
de 1Ko à 1Go => 24.55s
Quand au CPU environ 15-30% pour le fichier de 1Go !
Code utilisé :
de 1Ko à 100Mo => 1.13s
de 1Ko à 1Go => 24.55s
Quand au CPU environ 15-30% pour le fichier de 1Go !
Code utilisé :
Code : Tout sélectionner
;Même que Tlem :lol:- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Par rapport au test fait précédemment, que dit le graph de la RAM physique ?
A mon avis il n'y à pas photo, mais je demande au cas ou ...
A mon avis il n'y à pas photo, mais je demande au cas ou ...
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- SrBelial
- Niveau 7

- Messages : 335
- Enregistré le : jeu. 22 juil. 2010 11:29
- Localisation : 81 et 31
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
avec le code de Tlem moi j'obtiens ça :
AMD Athlon II X3 (je fais varier la cadence de 2.91GHz à 435 MHz)
2Go RAM
passage de 0 Ko à 100 Mo : entre 4.5 et 6.7 secondes, variation RAM imperceptible
passage de 0 Ko à 1 Go : un peu plus de 60 secondes, idem pour la RAM, occupation processeur très faible également (moins de 30% d'occupation d'un seul coeur => en moyenne 10% du temps processeur total)
par contre lorsque je descends mes performances, en cadençant chaque coeur à 435 MHz, le temps de passage de 0 Ko à 1 Go explose !!!! et le processus ne se montre pas plus gourmand, il ne prend pas tout le temps processeur disponible.
voila voila ... sympa cette petite étude ^__^
AMD Athlon II X3 (je fais varier la cadence de 2.91GHz à 435 MHz)
2Go RAM
passage de 0 Ko à 100 Mo : entre 4.5 et 6.7 secondes, variation RAM imperceptible
passage de 0 Ko à 1 Go : un peu plus de 60 secondes, idem pour la RAM, occupation processeur très faible également (moins de 30% d'occupation d'un seul coeur => en moyenne 10% du temps processeur total)
par contre lorsque je descends mes performances, en cadençant chaque coeur à 435 MHz, le temps de passage de 0 Ko à 1 Go explose !!!! et le processus ne se montre pas plus gourmand, il ne prend pas tout le temps processeur disponible.
voila voila ... sympa cette petite étude ^__^
.-SrB-. The One
- NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
- OUI ! AutoIt est un langage à part entière !
- Dans SciTE sélectionnez 1 mot puis F1
- Don't want english doc ?? go to documentation française !! >>ICI<<
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Avant :

Après :
On voit qu'il y a eu une petite plaine


Après :
On voit qu'il y a eu une petite plaine

- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Ouaip, ca l'a à peine chatouillé !!!
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
Effectivement juste un chouilla
Bon sur ce je me déconnecte !
Bonne fin de soirée/nuit à tous...
Bon sur ce je me déconnecte !
Bonne fin de soirée/nuit à tous...
-
Sh4dows
- Status : Hors ligne
Re: [..] Augmenter la taille d'un fichier
[R] Peut être ?
Si votre problème est Résolut merci d'éditer votre premier message afin de changer [..] en [R] !
Merci !
Cordialement sh4dows
Si votre problème est Résolut merci d'éditer votre premier message afin de changer [..] en [R] !
Merci !
Cordialement sh4dows

