AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie lese ich den BINÄRCODE einer Datei aus?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie lese ich den BINÄRCODE einer Datei aus?

Ein Thema von Cleverclimber · begonnen am 9. Mär 2006 · letzter Beitrag vom 11. Mär 2006
 
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Wie lese ich den BINÄRCODE einer Datei aus?

  Alt 9. Mär 2006, 20:21
du kannst den Filestream verwenden, dann geht es nur etwas anderst:

Delphi-Quellcode:
var LStream: TFileStream;
    buf:array of byte;
begin
  SetLength(LBuffer, 10);
  LStream := TFileStream.Create(DeinDateiname, fmOpenReadWrite);
  //10 Zeischen aus der Datei lesen
  LStream.Read(LBuffer[1], 10);
  //zurück an position 0 springen
  //10 Zeischen zurück schreiben
  LStream.Write(LBuffer[1], 10);
  LStream.Free;
end;
//der Inhalt des Array of Byte beinhaltet nach dem Lesen die ersten 10 Zeichen der Datei als Byte-Zahlen, also 0-255. Die kannst du dann noch weiter in 1en und 0en oder alternativ Hex-Zeichen zerlegen:

Delphi-Quellcode:
function hex(b:byte):string;
var
  hexes:string='0123456789ABCDEF';
begin
  result:=hexes[1+ (b div 16)]+ hexes[1+(b mod 16)];
end;
es gibt noch unendlich viele andere Möglichkeiten, den Code auszulesen, ich persönlich halte den filestream nicht für die eleaganteste.

z.B. gibts da noch die file:
Delphi-Quellcode:
var
  f:file of {jederbeliebigeTyp ausser Strings und Klassen, wir nehemn file of byte, um einzelne 1-Byte-große zahlenwerte
auszulesen}
 byte;
  r:integer;
  buf:array [0..1023] of byte;
begin
  assignfile(f,dateiname);
  //jetzt Datei öffnen:
  reset(f); //um existierende datei zu öffnen
  rewrite(f); //um existierende datei zu überschreiben oder neue zu erstellen
  //jetzt lesen/schreiben
  blockread(f {Dateivariable, aus der gelesen wird},buf{buffer-Speichervariable in die gelesen wird},1024{anzahl der zu lesenden Bytes},r{Hier eine Integervariable angeben, in der nach dem lesen gespeichert ist wie viel der zu lesenden Bytes tatsächlich gelesen wurden});
  seek(f,position); //springe in der Datei an eine bestimmte Position (0 = Anfang, filesize(F) = Ende, 1200 = hinter dem 1200. Byte in der Datei)
  blockwrite(f {Dateivariable, in die geschrieben wird},buf{buffer-Speichervariable aus der geschrieben wird},1024{anzahl der zu schreibenden Bytes},r{Hier eine Integervariable angeben, in der nach dem schreiben gespeichert ist wie viel der zu schreibenden Bytes tatsächlich geschrieben wurden});
  
  filepos(f) //gibt die Position zurück an der die Datei sich gerade befindet
  //letztendlich Datei wieder schliessen
  closefile(f);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
 


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 05:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz