Pure Shredder v1

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

file_byte =filesize % 4
Ca risque de te donner un file_byte égal à zéro si filesize est divisible par 4, non?
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.
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Jacobus a écrit :
file_byte =filesize % 4
Ca risque de te donner un file_byte égal à zéro si filesize est divisible par 4, non?
Bah dans ce cas il suffit d'un petit if et puis c'est réglé :oops:
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Merci pr la réponse. :-D
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

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
ca devrait faire l'affaire, non ?
Image
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

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. 8O

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 
On a ainsi la progression temps réel en plus de l'avancement général.
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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ce serait bien que 'Ouvrir un répertoire' se souvienne du dernier ouvert. :roll:
Image
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par 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)

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
...la suite du code

@+
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.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

:D Salut, voici la version 1 finale.
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.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par 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
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.
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message par Golfy »

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 ! :)
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

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.
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.
Répondre