France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
23 592 membres enregistrés - 1 913 478 posts - 99 188 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Comment ouvrir 1 fichier en binaire sous VB ?
17 connectés(record : 272 le 28 octobre 2008 - 04 h 23)

Vous devez vous connecter pour répondre au topic.
Comment ouvrir 1 fichier en binaire sous VB ?

Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 29 avril 2003 - 13 h 01 m 43 s
J'voudrais editer un fichier, quel que soit son extension, en binaire sous VB5.
J'ai essayé ca mais ca marche pas :

dim sortie
open "c:fichier.xxx" for binary read as #1
sortie=input (LOF(1),#1)
close #1

help svp




http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


alitokmen
Think ®

Messages : 3 687
Inscrit le 19/09/02
Ville : Grenoble, France || Ankara, Turquie
Non connecté
  Posté le 29 avril 2003 - 17 h 15 m 32 s
t'es sur du path du fichier???

normalmt ça marche avec tt ce truc...



S. Ali Tokmen
http://ali.tokmen.com
http://contact.ali.tokmen.com


Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 29 avril 2003 - 18 h 30 m 05 s
C'etait juste pour l'exemple, xxx representant l'extension valide du fichier. Mais en fait c'est pas trop à ce niveau la que ca va pas : il ouvre bien le fichier mais pas en binaire
> si c'est un fichier texte par exemple, la valeur qu'il y aura dans la variable sortie sera le texte tel quel avec des barre pour les retours charriot
>si c'est un .exe il va me sortir tout plein de caracteres bizarre mais pas des 1 et des 0



http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 29 avril 2003 - 23 h 27 m 30 s
:( personne a deja essayé ?? meme ds un autre langage !



http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 30 avril 2003 - 21 h 48 m 50 s
:up:



http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 01 mai 2003 - 00 h 26 m 55 s
:)

pour afficher des "0 et des 1", il faut que tu affiches les donnees de ta variable sous forme binaire. Si tu affiches ta variable "telle que", tu ne verras apparaitre que la representaion ASCII des donnees du fichier (donc des caracteres et signe sans signification si le fichier ne contient pas de texte)




Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 01 mai 2003 - 15 h 14 m 06 s
Donc faut que je fasse un prog pour passer de l'ASCII au binaire parce qu'un chrB$(variable) sur une variable string ca risque de ne pas marcher, non ?



http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 02 mai 2003 - 08 h 18 m 24 s
en VB je sais pas...

en C, tu peux t'inspirer de ca pour convertir un caractere (octet) dans sa representation binaire dans une chaine:


#include <stdio.h>
#include <stdlib.h>

int main(int argc,char** argv){

char c = 'b';
char mask = 1;
char* strOctet;
int i;

strOctet = malloc(9);


for( i = 7 ; i >= 0 ; i-- )
{
if( c & mask )
strOctet[i]='1';
else
strOctet[i]='0';
mask <<= 1;
}
printf("ncaractere '%c' en binaire: %snn",c,strOctet);
}







Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 02 mai 2003 - 13 h 17 m 22 s
Merci Tempo, j'ai fait un truc ds le genre mais le tps de calcul est super long (+ de 15min pour 4mo). C'est pour ca que je voulais voir s'il existait un moyen de l'avoir direct en binaire comme pour l'ascii > asc(variable)



http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 02 mai 2003 - 15 h 51 m 39 s
1/4 d'heure pour 4Mo...

:Pt1cable: VB est de plus en plus veloce :na:

Ils preconisent pas une CPU a 5GHz chez Nicrosoft ?!?

Juste pour le fun faut que je ponde un p'tit peu de code pour faire ca en C, deja essayer sous Linux...
dommage, je suis en vacance pour un mois et j'ai pas d'acces a "mon" Superdome (16 CPUs PA-RISC 64bits à 750MHz...).




tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 02 mai 2003 - 16 h 37 m 49 s
une idee aussi: si tu a 4Mo a traiter, tu peux prealablement "preparer" dans un tableau les chaines de caracteres des 256 octets. ensuite il n'y a plus qu'a utiliser l'octet concerne en index dans le tableau, et hop tu a la chiane correspondante toute calculee... un petit peu plus de RAM utilisee, mais certainement plus rapide




tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 02 mai 2003 - 17 h 32 m 29 s
Facile, le code ci-dessous...
test sur source kernel linux (tarball ~32Mo)
execution sur Athlon 1GHz, affichage ("scrolling") via SSH sur une machine distante
l'affichage necessite le transfert et le cryptage de - au moins - 32Mo*9 = 288Mo (chaque octet du fichier est represente par une chaine de 8 octets +CRLF)
execution en ~5 minutes

oublie VB et passe au C !!! :)
code ci-dessous



#include <stdio.h>
#include <stdlib.h>

char strOctet[256][9];

void initStr(){
unsigned int uic;
unsigned int mask;
signed int i;
for(uic=0;uic<256;uic++)
{
// printf("traitement %in",uic);
mask = 1;
for(i=7;i>=0;i--)
{
// printf("traitement bit %in",i);
if( uic & mask )
strOctet[uic][i]='1';
else
strOctet[uic][i]='0';
mask <<= 1;
}
strOctet[uic][8]=0;
printf("representation binaire de '%i' : %sn",uic,strOctet[uic]);


}
}


void parsefile(){
FILE *fin;
char c;

fin = fopen("/usr/src/linux-2.4.19.tar.gz","r");

while(!feof(fin)){
fread(&c,1,1,fin);
printf("%sn",strOctet[(unsigned int)c]);
}
}



int main(int argc,char** argv){

initStr();
parsefile();
return 0;
}






Yan


Messages : 924
Inscrit le 10/06/02
Ville : Grenoble
Non connecté
  Posté le 03 mai 2003 - 00 h 35 m 20 s
En effet j'ai pas testé sur des chaines plus petite, j'vais essaye ca. Pour ce qui est du C j'connais pas trop, c'est pour ca que j'voulais voir ce qui y'avait en C sous Linux mais j'ai vite abandonné linux (suze 8.2)car mon modem n'etait pas reconnu :( (http://forums.rhone-alpes-hardware.com/viewtopic.php?topic=21527&forum=15&start=0&23) et que vu que j'y connaissais rien à linux j'avais pas envie de m'aventurer à recompiler le kernel.
Je reessayerai linux un jour peut etre...



http://vacances.autrans.free.fr/
http://images.insolites.free.fr/


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 03 mai 2003 - 08 h 52 m 24 s
si tu veux pas passer sous linux tout en profitant des outils de developpement GNU (gcc, make, ...) je te conseille Cygwin: http://www.cygwin.com/

C'est un environnement Unix (shell, serveur X, ...) qui fonctionne sous windows




Page genérée en 0.7370 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory