Ca risque de te donner un file_byte égal à zéro si filesize est divisible par 4, non?file_byte =filesize % 4
Pure Shredder v1
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Code : Tout sélectionner
Procedure ShredB()
WriteByte(Random($FF))
EndProcedure
Procedure ShredW()
WriteWord(Random($FFFF))
EndProcedure
Procedure ShredL()
WriteLong(Random($FFFFFFFF))
EndProcedure
Procedure ShredFile(filesize)
For i = 1 To filesize Step 4
ShredL()
Next
Select (filesize % 4)
Case 1: ShredB()
Case 2: ShredW()
Case 3: ShredW():ShredB()
EndSelect
EndProcedure
Je viens de tester et je dois dire que c'est excellent.
Ce qui me surprend c'est que ce soit plus rapide au travers d'une procédure. Je pensais, au contraire, que l'appel de procédure aurait ralenti le processus et en plus même la charge CPU est moins importante.
Pour voir de visu avec les yeux la progression de ré-écriture
On ajoute une ProgressBar que l'on nomme par exemple #ProgBarPointeur dans la fenêtre et on affiche le résultat récupéré par la fonction Loc()
On a ainsi la progression temps réel en plus de l'avancement général.
Ce qui me surprend c'est que ce soit plus rapide au travers d'une procédure. Je pensais, au contraire, que l'appel de procédure aurait ralenti le processus et en plus même la charge CPU est moins importante.

Pour voir de visu avec les yeux la progression de ré-écriture
On ajoute une ProgressBar que l'on nomme par exemple #ProgBarPointeur dans la fenêtre et on affiche le résultat récupéré par la fonction Loc()
Code : Tout sélectionner
For i = 1 To filesize Step 4
ShredL()
Pointeur.f = Val(Str(Loc()))/filesize*100
SetGadgetState(#progbarPointeur,Pointeur)
Next
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
@Flype : Oui, je prépare une version avec plusieurs options utilisateur qui devrait le rendre beaucoup plus convivial que la beta présentée.
Adapter la Progressbar du pointeur en fonction de la taille du fichier :
En reprenant le source initial et en modifiant en fonction des choix de chacun (notamment l'emplacement de la barre)
...la suite du code
@+
Adapter la Progressbar du pointeur en fonction de la taille du fichier :
En reprenant le source initial et en modifiant en fonction des choix de chacun (notamment l'emplacement de la barre)
Code : Tout sélectionner
;Déclarer en global la variable avec une valeur initiale
Global ValMax_progress
ValMax_progress = 100
;la progressbar avec valeurs initiales dans la fenêtre.
ProgressBarGadget(#progbarPointeur, 5,120,475,15,0,ValMax_progress,#PB_ProgressBar_Smooth)
;Dans la boucle ( Case #Menu_ShredIt )
;modifier cette partie :
For np = 1 To Passes
OpenFile(0,FileToShred$)
filesize=Lof()
ValMax_progress = filesize ; adapte la valeur de la progressbar à la taille du fichier.
ShredFile(filesize) ; on utilise la procedure de Flype modifiée comme dans mon post précédent.
e = Eof(0)
If e<>0
SetGadgetText(#Text_eof_compte, Str(np)+" fois")
Else
SetGadgetText(#Text_eof_compte, "ERREUR!")
np = Passes
EndIf
CloseFile(0)
pourcentage.f = np/Passes*100
SetGadgetState(#progbarShred,pourcentage)
Etat = GetGadgetState(#progbarShred)
SetGadgetText(#textNBpasses," Ecrasement en cours ... : " +Str(Etat)+ " % PATIENTEZ SVP")
Beep_(400,100)
UC_Mem_use()
Next np
@+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.

Vous pouvez la télécharger ici :PureShredder01
Zip de 178 ko, exécutable seul, version française et anglaise.
Pas d'installation, un dossier simple à placer où vous voulez et créer un raccourci sur le bureau si vous préférez.
Un fichier d'aide est inclus si vous avez des doutes.
Je n'ai pas inclus la sélection multiple dans cette version, mais j'y viendrai plus tard, c'est vrai que pour les petits fichiers cela peut être utile.
L'aide anglaise j'ai pas le temps pour le moment, mais si des anglophones veulent s'y coller... et en même temps me dire si je n'ai pas commis trop d'erreurs dans la langue de Shakespeare.
Vos réflexions sont toujours les bienvenues.
Merci à tous les testeurs et participants.
@+ Jacobus.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Salut à tous
PureShredder est devenu WolfoRan Shredder
ici >> http://www.wolforan.fr
J'ai refais un site pour le distribuer en shareware d'évaluation avec d'autres logiciels qui feront une suite au final.
Vous pouvez essayer le prog en évaluation et si il vous convainc, envoyez moi un mp avec vos coordonnées, si ça vous intéresse je vous enverrai un lien de téléchargement de la version non bridée en retour, et gratuitement pour les membres du forum.
Voilà, c'est ma tentative d'incursion dans le monde cruel de la vente de logs qui j'espère se poursuivra. Si vous voulez mettre un lien vers mon site sur vos pages, ben allez-y et merci.
voilà voilà...
@+ Jacobus
PureShredder est devenu WolfoRan Shredder
ici >> http://www.wolforan.fr
J'ai refais un site pour le distribuer en shareware d'évaluation avec d'autres logiciels qui feront une suite au final.
Vous pouvez essayer le prog en évaluation et si il vous convainc, envoyez moi un mp avec vos coordonnées, si ça vous intéresse je vous enverrai un lien de téléchargement de la version non bridée en retour, et gratuitement pour les membres du forum.

Voilà, c'est ma tentative d'incursion dans le monde cruel de la vente de logs qui j'espère se poursuivra. Si vous voulez mettre un lien vers mon site sur vos pages, ben allez-y et merci.
voilà voilà...
@+ Jacobus
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Perso, j'aurais procédé comme suit :
Allocation d'un buffer de 4096 octets en RAM
Ecriture aléatoire de LONG et BYTE à l'intérieur
Ecriture de la chaine contenue dans le buffer dans le fichier (en fonction de sa taille bien sur).
Il faut modifier le buffer à chaque écriture, sinon sur un fichier de 4x4096 octets ont peux retrouver le motif.
Ainsi il me semble que l'écriture d'une chaine de 4096 octets est plus rapide que l'écriture 4 octets en boucle.
L'écriture en mémoire du buffer est quasiment instantanée.
Pour la vente, c'est le code source que je vendrais à ta place :
* si j'utilise un soft de destruction de fichier, je veux savoir ce qu'il fait (voir même le compiler moi-même pour être sûr qu'il n'y ait pas de fonctions cachées)
* Les organismes "sensibles" aiment bien les open-sources (Gantt Project, Open Office, etc.) ce qui n'empèche pas de mettre une licence GNU ou un truc comme ça pour protéger ton travail et demander une rémunération.
Bon courage !
Allocation d'un buffer de 4096 octets en RAM
Ecriture aléatoire de LONG et BYTE à l'intérieur
Ecriture de la chaine contenue dans le buffer dans le fichier (en fonction de sa taille bien sur).

Ainsi il me semble que l'écriture d'une chaine de 4096 octets est plus rapide que l'écriture 4 octets en boucle.
L'écriture en mémoire du buffer est quasiment instantanée.
Pour la vente, c'est le code source que je vendrais à ta place :
* si j'utilise un soft de destruction de fichier, je veux savoir ce qu'il fait (voir même le compiler moi-même pour être sûr qu'il n'y ait pas de fonctions cachées)
* Les organismes "sensibles" aiment bien les open-sources (Gantt Project, Open Office, etc.) ce qui n'empèche pas de mettre une licence GNU ou un truc comme ça pour protéger ton travail et demander une rémunération.
Bon courage !

Idée intéressante en effet, l'écriture de paquets de 4ko rendrait le tout beaucoup plus rapide. Une solution à étudier, merci.
PB4 apporte pas mal de nouveautés qui devrait permettre une bonne accélération des procédures. A voir avec la version finale.
Pour le reste tu parles en pro, informaticien développeur, ce qui n'est pas le cas de tout le monde. L'utilisateur lambda serait bien désappointé
avec un kit de shredder... bien que je comprenne le principe sécuritaire que tu évoques.
PB4 apporte pas mal de nouveautés qui devrait permettre une bonne accélération des procédures. A voir avec la version finale.
Pour le reste tu parles en pro, informaticien développeur, ce qui n'est pas le cas de tout le monde. L'utilisateur lambda serait bien désappointé

Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.