URGENT ! Je veux calculer des chiffre immenses

Signaler
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012
-
 Utilisateur anonyme -
J'ai vraiment besoin d'aide . Je veux faire un éditeur hexa basique , qui puisse lire n'importe quelle taille de fichier ... pour l'instant la methode que j'utilise est sympathique puisque le temps de chargement ne dépend presque pas de la taille du fichier , ce qui fait que je met en mémoire des fichiers de 1Mo sans aucun probléme . Par contre c'est la methode de lecture dans le fichier qui me permet de gérer ça ... Je n'ouvre pas vraiment le fichier , je le met dans une variable en mémoire et c'est pour ça que ça speede autant . Quand à l'affichage il permet de lire seulement à la position du curseur . Mon seul probléme c'est mes controles vb ne supportent pas de nombres aussi grands je travaille avec des octets alors 1MO ... ça fait planter le scrollbar , mais c'est pas grave , je peux le remplacer avec un truc perso ... mai ça fait aussi planter Mes variables integer , long et Double , alors que Long devrait supporter beaucoup plus que ce que je lui demande ...

Aidez-moi svp car la je ne pige plus rien ... je rematte les type de variable du style Long et je me dis qu'il ont fumé chez Vb car ils disent que ça peut facilement depasser le 10^6 !!!

Cependant ça pourrais venir du fait que je le déclare avec un Dim ??? bréf si vous pourriez me donner une methode pour afficher et pouvoir faire des calculs avec des nombres dépassant les
100 000 (ce qui est déjà pas mal .... 100 Ko ) et puis voir même les 1 000 000 ça serais cool ...

.:: aKheNAtHoN ::.
>:) [http://www.vbhackerz.fr.st [->www.vbhackerz.fr.st<-]] >:)

11 réponses

Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
Salut,

Pkoi ne pas utiliser le type Variant (16 octets)?

Tchao

NéoB
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012

Ben je viens de changer de type mais le probléme c'est que ça buggue toujours ... Mais ce qui m'énerve c'est que ça plante à 32767 !

Comme si c'étais un integer , alors que j'ai tout essyé comme types , il plante tj quand ça dépasse la capacitée d'un integer ...!

Je vais peut être changer le nom de la varaiable car si ça se trouve 'Pos' coïncide avec une autre variable . Je viens de le faire à l'instant en le changeant avec la variable Endroit , et ça plante tj comme si c'étais en mode Integer .

C'est la déclaration Dim qui trippe peut-être ...
Si vous avez des idées je suis à l'écoutte car moi je trouve pas ... Donc le Variant marche pô

Je vous file le code de form 1 pour que vous voyez si y'a un bug ...

Dim Endroit As Variant
' ça c'est le gestionnaire de navigation dans le programme
' C'est ici que ça buggue
Private Sub VScroll2_Change()
On Error GoTo trap
Dim Ligne As Integer
FileBuffer = Form2.FileBuffer
Ligne = 0
Form1.Lines(Ligne).Caption = Empty
For i = 0 To 80
If Form1.Bits(i + 1).Top > Form1.Bits(i).Top Then
Ligne = Ligne + 1
Form1.Lines(Ligne).Caption = Empty
End If
' <<<<--- BUG --->>>>
Endroit = VScroll2.Value * 8 + i + 1
' Le programme met un overflow ici alor que
' Endroit ne depasse pas les 50 000 !
' <<<<--- BUG --->>>>
Form1.Bits(i + 1).Caption = Right("00" & Hex(Asc(Mid(FileBuffer, Endroit, 1))), 2)
Form1.Bits(i + 1).Visible = True
' The nom
If Asc(Mid(FileBuffer, Endroit, 1)) > 32 And Asc(Mid(FileBuffer, Endroit, 1)) < 126 Then
Form1.Lines(Ligne).Caption = Form1.Lines(Ligne).Caption & Mid(FileBuffer, Endroit, 1)
Else
Form1.Lines(Ligne).Caption = Form1.Lines(Ligne).Caption & "."
End If
Next i
Exit Sub
trap:
' C'est le gestionnaire de tronquage pour les fins de fichiers 
' qui ne tombent pas sur un nombre exact d'octets ...
For j = i To 80
Form1.Bits(j).Visible = False
Next j
Exit Sub
End Sub


Merci , j'attend avec impacience vos réponses ...

.:: aKheNAtHoN ::.
>:) [http://www.vbhackerz.fr.st [->www.vbhackerz.fr.st<-]] >:)
Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
Salut,

Une ScrollBar travaille avec un Integer ( –32 768 à 32 767). Le problème ne viendrait-il pas de là ?

Tchao

NéoB
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012

Pour l'instant je travaille avec des fichiers assez petits et le scrollbar retourne la valeur non pas de tous les bits mais d'une ligne ...

Donc la valeur de par exemple un fichier de 80 Ko est en scroll bar de 10 000 environ .
Elle ne depasse pas les 32 767 .
Par contre pour la lecture j'ai besoin de placer le curseur à la vraie place du scroll bar . C'est pour ça que je le multimplie par 8 ...

ça doit venir du Dim car le mode Variant ou long n'est pas pris en compte dans le programme . La variable n'est pas redéfinie une autre fois dans le programme pour être sur qu'il n'y ait pas de confusion , aucun composant ne s'appelle ainsi .

Ce que je me demande c'est s'il y à une autre maniére de définir une variable , et aussi j'aimerais comprendre pk il ne prend pas en compte le type , car c'est la premiére fois qu'il me merde sur un dim et je trouve ça trop chelou ...
.:: aKheNAtHoN ::.
>:) [http://www.vbhackerz.fr.st [->www.vbhackerz.fr.st<-]] >:)
Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
Re,

Le seul truc qui pourrait coincer c'est
Dim Ligne As Integer

As-tu fait un arrêt sur cette variable pendant l'exécution ?

Tchao

NéoB
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012

Nan t'inquiette la variable Ligne n'est là que pour faire joli ...

En faite c'est juste pour la position à l'écran de la ligne de texte à modifier ... Bréf c'estte variable change de 0 à 20 à peu prés et ne correspond pas au nombre de lignes du fichier ...

Le programme m'indique l'overflow vraiment à la ligne que j'avais indiqué ... et c'est stressant de pas savoir ... Le i varie de 0 à 80 les ligne de 0 à 10 en faite :) ... et La varaible ScrollBar de 0 à 10000

C'est la varaible que je veux déclarer qui merde ... j'en suis sur !

.:: aKheNAtHoN ::.
>:) [http://www.vbhackerz.fr.st [->www.vbhackerz.fr.st<-]] >:)
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012

Nan t'inquiette la variable Ligne n'est là que pour faire joli ...

En faite c'est juste pour la position à l'écran de la ligne de texte à modifier ... Bréf c'estte variable change de 0 à 20 à peu prés et ne correspond pas au nombre de lignes du fichier ...

Le programme m'indique l'overflow vraiment à la ligne que j'avais indiqué ... et c'est stressant de pas savoir ... Le i varie de 0 à 80 les ligne de 0 à 10 en faite :) ... et La varaible ScrollBar de 0 à 10000

C'est la varaible que je veux déclarer qui merde ... j'en suis sur !

.:: aKheNAtHoN ::.
>:) [http://www.vbhackerz.fr.st [->www.vbhackerz.fr.st<-]] >:)
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012

Nan t'inquiette la variable Ligne n'est là que pour faire joli ...

En faite c'est juste pour la position à l'écran de la ligne de texte à modifier ... Bréf c'estte variable change de 0 à 20 à peu prés et ne correspond pas au nombre de lignes du fichier ...

Le programme m'indique l'overflow vraiment à la ligne que j'avais indiqué ... et c'est stressant de pas savoir ... Le i varie de 0 à 80 les ligne de 0 à 10 en faite :) ... et La varaible ScrollBar de 0 à 10000

C'est la varaible que je veux déclarer qui merde ... j'en suis sur !

.:: aKheNAtHoN ::.
>:) [http://www.vbhackerz.fr.st [->www.vbhackerz.fr.st<-]] >:)
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

utilise et cherche les "opérations binaires" par décalage de bits !!

coïto ergo sum

Un déterrage de 10 ans et des bananes... Le type est sûrement déjà mort (son avatar était déjà pas très frais)

Bonjour,

Un déterrage de 10 ans et des bananes...



Ben quoi ? C'était urgent.