AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien binär beschreiben?

Ein Thema von LDericher · begonnen am 16. Feb 2008 · letzter Beitrag vom 16. Feb 2008
Antwort Antwort
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#1

Dateien binär beschreiben?

  Alt 16. Feb 2008, 10:24
Hi,

Ich stehe vor folgendem Problem:

Ich möchte meinen "eigenen" Datenkompressionsalgorithmus nach der Idee von Huffman schreiben und muss dafür allerdings auch Dateien binär(oder auch hexadezimal... oder wie auch immer) bearbeiten können. Das auslesen ist weniger das Problem, da kann man ja per TFileStream ein Byte auslesen und in ein beliebiges Zahlensystem umwandeln...

Das Problem ist mehr das schreiben:

Wie kann man das tun? Also dass nach dem Schreiben in der Datei nicht Chars, sondern die Bits/Bytes gesetzt werden?
Wenn ich mir hier allerdings zu viele Sorgen machen sollte, also es unproblematisch sein sollte, jede beliebige Datei, sei es Bild, EXE oder TXT, textbasiert zu bearbeiten, bitte schreibt es hier.

Ich sag' schonmal im Voraus DANKE und hoffe demnach auf eine Antwort.

Superwinger
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

Re: Dateien binär beschreiben?

  Alt 16. Feb 2008, 10:34
Du willst die einzelnen Bytes in Zeichenketten umwandeln und dann erst komprimieren?

Warum
Das Umwandel bläst du Datei doch nur unnötig auf.

Das Resultat der Huffman-Komprimierung ist schon binär.

MfG,
Bug

PS: Wenn du Anregung brauchst: Schau dir mal das an!
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Dateien binär beschreiben?

  Alt 16. Feb 2008, 10:42
Schön, dass es da etwas vorgefertigtes gibt

Aber ich wollte meinen Huffman KOMPLETT selbst schreiben, das ist mein Anliegen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Dateien binär beschreiben?

  Alt 16. Feb 2008, 10:55
Hallo,

dem FileStream ist deine Interpretation des IO-Buffers egal, für ihn sind es eine Folge von Bytes, nie Chars oder Integers. Die statistische Kodierung nach Huffman geht zwar auf die Bit-Ebene herunter, aber schreiben und lesen wirst du Bytes.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Dateien binär beschreiben?

  Alt 16. Feb 2008, 11:03
Im Prinzip kannst du auch einen Record also Datenstrukturen, Arrays oder ähnliches mit einem TFileStream lesen und schreiben.
Delphi-Quellcode:
Type
  TMyData = packed record
    Int: integer;
    B: Byte;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  FileStream: TFileStream;
  //MyData: Byte;
  //MyData: array[0..20] of byte;
  MyData: TMyData;
  Pfad: AnsiString;
begin
  Pfad := 'D:\...';
  ZeroMemory(@MyData, SizeOf(MyData));
  if FileExists(Pfad) then
  begin
    FileStream := TFileStream.Create(Pfad, fmOpenReadWrite);
    try
      FileStream.Read(MyData, SizeOf(MyData));//Daten lesen

      MyData.Int := ...;//Daten ändern
      MyData.B := ...;

      FileStream.Position := 0;
      if FileStream.Write(MyData, SizeOf(MyData)) = SizeOf(MyData) then //Daten schreiben
        Showmessage('fertig');
    finally
      FileStream.Free;
    end;
  end;
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Dateien binär beschreiben?

  Alt 16. Feb 2008, 12:36
Bin ziemlich sicher, einen Weg gefunden zu haben

Danke

Gruß JMM
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz