Page 1 sur 3
Recherche rapide dans un gros fichier inconnu
Publié : mer. 08/août/2007 15:04
par Kwai chang caine
Bonjour à tous
Voila, je voudrais savoir quelle serait votre méthode si vous vous trouviez devant un gros fichier dont vous ne connaissez pas le format et qui est sans extension bien sur, avec des hieroglyphes et de l'ASCII par ci et par la et que vous voudriez retrouver des phrases dans les parties disséminées d'ASCII dans ce fichier.
Et ceci le plus rapidement possible.
Cerise sur le ponpon, apparement ce fichier est sur un serveur protégé et je peux l'ouvrir avec NOTEPAD mais pas avec ce code

.
Quelqu'un sait il pourquoi ?
Code : Tout sélectionner
Fichier$= "c:\Fichier"
IdFichier = ReadFile(#PB_Any, Fichier$)
Size = FileSize(Fichier$)
*Buffer = AllocateMemory(Size)
ReadData(IdFichier,*Buffer, Size)
Repeat
Caractere = PeekB(*Buffer + Lng)
Debug Chr(Caractere)
Lng + 1
Until Lng >= Size
FreeMemory(*Buffer)
Je vous remercie
Bonne journée
Publié : mer. 08/août/2007 15:32
par Anonyme
salut tchang , ton code marche nickel , du moins sous le pinguoin... j'vois pas se qui cloche... droit d'accès ??
Publié : mer. 08/août/2007 15:56
par Lna
Bonjour,
Alors comme ça, on se lance dans le corsairage ?
Code : Tout sélectionner
Fichier$= "c:\Fichier"
IdFichier = ReadFile(#PB_Any, Fichier$)
Debug FileSize(Fichier$) ; pour connaître le nombre de tera
Size=20 ; pour voir si la lecture est déjà possible
*Buffer = AllocateMemory(Size)
ReadData(IdFichier,*Buffer, Size)
Repeat
Caractere = PeekB(*Buffer + Lng)
Debug Chr(Caractere)
Lng + 1
Until Lng >= Size
FreeMemory(*Buffer)
Ca donnera déjà une idée.
@ peluche
Publié : mer. 08/août/2007 16:49
par Kwai chang caine
Bonjour à tous les deux
@CPL.BATOR
Je pense aussi que c'est une autorisation, qui me manque, mais pourquoi le NOTEPAD il en a pas besoin
Peut etre ne lit il pas jusqu'au bout le fichier ?
Ou bien si on l'arrete, il dit rien et affiche ce qu'il a déjà
@LNA
Tu va rire (Enfin j'suis pas sur

)
Mais il fait aucun TERA (meme pas de johnson

), il fait 12 MO (des mégaoctets pas des "Mots"

)
En fait je viens de m'appercevoir que c'est le reseau qui rame un max, 10 MO, t'imagine y'a le WIFI, le Bluetooth etc ...et ma prehistoboite elle a un reseau de 10 MO Ouaaarf ouaarf
Bref donc mon "gros" fichier est petit en fait = 12308520, mais ça ne resoud pas le fait que ça plante a la ligne 9 = File object not initialized.
Normal la variable "IdFichier" est à 0
Comme le dit CPL, Pure ne doit pas pouvoir lire ce que NOTEPAD lit
En fait ce que j'ai fait, et comme dab, c'est du "pire ratage"
Encore merci de votre aide
Publié : mer. 08/août/2007 18:18
par Ollivier
Tu sais Kcc, si tu ouvres ton fichier avec Notepad, et que tu lis avec PureBasic, n'oublie pas de
fermer Notepad... Mh?
Sinon pour un gros fichier, tu... Hou, mais j'ai pas vu que c'était torduratage ton histoire! Allez, fais appel à ton 6ème sens!
Publié : mer. 08/août/2007 21:09
par Anonyme
Essaye ca :
Code : Tout sélectionner
Fichier$= "/home/jerome/bin/purebasic/compilers/engine3d.so"
IdFichier = 0
ReadFile(IdFichier, Fichier$)
Size.q = FileSize(Fichier$)
If Size=-1
MessageRequester("Erreur","le fichier n'existe pas ou l'adresse : "+Fichier$+" est incorecte")
End
ElseIf Size=-2
MessageRequester("Erreur","le fichier n'existe pas , c'est un répertoire")
End
EndIf
*Buffer = AllocateMemory(Size)
If *Buffer = #Null
MessageRequester("Erreur","Impossible d'allouer "+Str(Size)+"octets")
End
EndIf
ReadData(IdFichier,*Buffer, Size)
Repeat
Caractere = PeekB(*Buffer + Lng)
If Caractere = 13
Debug Line$
Line$=""
Else
Line$ + Chr(Caractere)
EndIf
Lng + 1
Until Lng >= Size
FreeMemory(*Buffer)
Tu sais Kcc, si tu ouvres ton fichier avec Notepad, et que tu lis avec PureBasic, n'oublie pas de fermer Notepad... Mh?
tu peut l'ouvrir autant de fois que tu veut, cela ne change rien, il demande juste un acces en lecture.
Publié : mer. 08/août/2007 21:50
par Ollivier
@Cpl
Je pense que ta dernière phrase un peu hâtive!
Publié : mer. 08/août/2007 21:56
par bombseb
quand tu dis sur un serveur protégé ca veux dire quoi exactement ?
le chemin du fichier commence par quoi "
http://leserveur" ou "\\leserveur" ?
si c'est "http://" ca ne marchera pas avec un readfile...
Publié : mer. 08/août/2007 22:07
par Anonyme
Ollivier a écrit :@Cpl
Je pense que ta dernière phrase un peu hâtive!
Code : Tout sélectionner
For i = 0 To 10
Debug "Lecture = "+Str( ReadFile(i, Fichier$) )
Next
Publié : mer. 08/août/2007 22:14
par Ollivier
Publié : mer. 08/août/2007 22:19
par Anonyme
Ollivier a écrit :
Cpl? Résultat?
je ne te suis pas
- Config quoi ?:
C:\Windows\System\Config.
For i = 0 To 10
Debug "Lecture = "+Str( ReadFile(i, Fichier$) )
Next
Debug va te renvoyer 11 pointeur différent vers fichier$

Publié : mer. 08/août/2007 22:38
par Ollivier
Coriace le Cpl
Code : Tout sélectionner
Dim Mot$(1)
Mot$(0) = "Non"
Mot$(1) = "Oui"
Fichier$ = "C:\Windows\System32\Config\System."
Existant = FileSize(Fichier$)
If Existant = -1
Rep.S = "Non"
Else
Rep = "Oui"
EndIf
Debug "Existant? " + Rep
Debug "Possible de l'ouvrir? " + Mot$(ReadFile(-1, Fichier$) )
Et ne me sors pas que c'est un dossier!!
Publié : mer. 08/août/2007 22:42
par Anonyme
Ollivier a écrit :
Cpl? Résultat?
edit : Pourquoi tu met un Point apres system, parcequ'il na pas d'extention ?
on ne parle pas de fichier systeme , mais d'un simple fichier.
même si windows est réputé pour le laissé aller dans se domaine , faut pas abusé non plus...
sous le pinguoin c'est pareil , du moment que je ne suis pas en root, je ne peut pas lire les fichiers système, heureusement d'ailleurs.
quand tu dis sur un serveur protégé ca veux dire quoi exactement ?
le chemin du fichier commence par quoi "
http://leserveur" ou "\\leserveur" ?
si c'est "http://" ca ne marchera pas avec un readfile...
@kcc :
j'ai zappé cela de ton post, ne me dis pas que tu essayes de lire un fichier avec une adresse internet

imagine le truc
Code : Tout sélectionner
if OpenFile(0,"Http://Nasa.us//OnApasMarcherSurLaLune.doc")
else
messagerequester("erreur","impossible d'ouvrir le fichier de la nasa ! ")
endif
Publié : mer. 08/août/2007 22:50
par Ollivier
Et puis là, XXX XXXXX XXXX, tu vas y passer des heures à me l'ouvrir celui-là...
Publié : mer. 08/août/2007 23:01
par Anonyme
Ollivier a écrit :Et puis là, mon petit père, tu vas y passer des heures à me l'ouvrir celui-là...
a qui tu parles ?
