Avatar billede nautmann Nybegynder
08. april 2004 - 18:49 Der er 13 kommentarer og
1 løsning

gem fil som binær fil

Hej!

Jeg har en fil der indeholder nuller og 1-taller.

Jeg vil gerne gemme filen som en binær fil hvor 1-tallerne gemmes som et 1 og ikke som 00000001 der representere 1-tallet i det binære talsystem og hvor nullerne gemmes som et 0 og ikke som 00000000 der representere nul i det binære talsystem.

F.ex. hvis en fil indeholder tallet 1100 skal den i princippet fylde 4 bits og ikke 4 byte.
Avatar billede roenving Novice
08. april 2004 - 18:53 #1
En hex-editor ?-)

www.download.com har dem garanteret i bundter !-)
Avatar billede arne_v Ekspert
08. april 2004 - 20:09 #2
Du bliver nødt til at lave et lille program som konverterer fra 8 bit til 1 bit.

Hvis du fortæller hvilke compilere du har så kan vi sagtens lave et til dig.
Avatar billede nautmann Nybegynder
08. april 2004 - 20:38 #3
Jeg bruger windows ActivePerl 5.8
Avatar billede arne_v Ekspert
08. april 2004 - 20:41 #4
pas

Jeg kan lave det i C/C++/Java/C#/VB.NET/VB/Delphi/Fortran men ikke i Perl.
Avatar billede nautmann Nybegynder
08. april 2004 - 23:02 #5
hvis vi kan lave en C version der virker på linux red hat kan det også være en løsning.
Avatar billede arne_v Ekspert
08. april 2004 - 23:23 #6
Det tror jeg at jeg kan klare !
Avatar billede arne_v Ekspert
08. april 2004 - 23:23 #7
#include <stdio.h>

int main()
{
  FILE *fp1,*fp2;
  int c,acc,n;
  fp1=fopen("z1.dat","rb");
  fp2=fopen("z2.dat","wb");
  acc=0;
  n=0;
  while((c = fgetc(fp1)) >= 0)
  {
      acc <<= 1;
      if(c=='1')
      {
        acc += 1;
      }
      n++;
      if(n%8 == 0)
      {
        fputc(acc,fp2);
        acc = 0;
      }
       
  }
  fclose(fp1);
  fclose(fp2);
  return 0;
}
Avatar billede arne_v Ekspert
08. april 2004 - 23:24 #8
Jeg tror faktisk at du kun skal rette filnavnene til.
Avatar billede arne_v Ekspert
08. april 2004 - 23:25 #9
Jeg har testet at "010000010100001001000011" bliver til "ABC" som det skal (hvis jeg
har forstået det rigtigt).
Avatar billede nautmann Nybegynder
09. april 2004 - 00:23 #10
Det virker overbevisende, men da jeg ikke er i nærheden af mit linux OS kan jeg ikke tjekke det nu, sorry...tak for alt endtil nu jeg mailer tilbage når jeg har tjekket det.
Avatar billede arne_v Ekspert
12. april 2004 - 20:07 #11
Jeg ligger lige et svar
Avatar billede nautmann Nybegynder
13. april 2004 - 22:53 #12
Tak, det virker!
Avatar billede arne_v Ekspert
24. april 2004 - 17:57 #13
Så mangler du bare lige at acceptere mit svar
Avatar billede nautmann Nybegynder
01. februar 2005 - 20:04 #14
UPS!!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester