AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Spezielles CRC-16: Übersetzung aus C++ (omg)
Thema durchsuchen
Ansicht
Themen-Optionen

Spezielles CRC-16: Übersetzung aus C++ (omg)

Ein Thema von blackdrake · begonnen am 13. Apr 2008 · letzter Beitrag vom 14. Apr 2008
 
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Spezielles CRC-16: Übersetzung aus C++ (omg)

  Alt 13. Apr 2008, 16:39
Einfach hier im Beitragseditor getippt, also wohl noch ein paar syntaktische Fehler drin. Ansonsten stur übersetzt, samt der manchmal unnötigen Typecasts.
Delphi-Quellcode:
function crc16(const AData: Char; APoly, AResult: word): word;
// Appends one byte to a runing CRC-16 calculation
var
  i: integer;
begin
  AResult := AResult xor word(word(AData) shl 8));

  for i := 1 to 8 do
  begin
    if ( AResult and $8000 ) <> 0 then
      AResult := (AResult shl 1) xor APoly
    else
      AResult := AResult shl 1;
  end;

  result := AResult;
end;

function file_crc16(const AFilename: string): word;
// Calculates the CRC-16 of the ISF file
var
  lFile: TStream; // finp
  lData: Char; // crcd
  lCRC: Word; // crcr
begin
  lCRC := $ffff;
  
  try
    lFile := TFileStream.Create(AFilename, fmOpenRead);
    try
      lData := '0';

      while ( lFile.Read(lData, 1) = 1 ) and ( lData >= ' ' ) do ;
      while ( lFile.Read(lData, 1) = 1 ) and ( lData >= ' ' ) do ;

      while ( lFile.Read(lData, 1) = 1 ) do
        lCRC := crc16(lData, $1021, lCRC);
    finally
      lFile.Free;
    end;
  except
    ; // böse..., aber original hat auch keine Exceptions geworfen...
  end;

  result := lCRC;
end:
/EDIT: Fehler korrigiert
  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:04 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