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 |
|
|
|
|
|
| |
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...
 t1cable: VB est de plus en plus veloce
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
|
|
| |
|