AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken wie art der daten in blob erkennen?
Thema durchsuchen
Ansicht
Themen-Optionen

wie art der daten in blob erkennen?

Ein Thema von schorsch666 · begonnen am 30. Aug 2023 · letzter Beitrag vom 3. Sep 2023
 
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#12

AW: wie art der daten in blob erkennen?

  Alt 31. Aug 2023, 17:52
Jupp, basierend auf dieser Liste hatte ich mir mal was gebastelt
Hallo KodeZwerg, ich war so frei mal Deinen Code durch ChatGPT "verbessern" zu lassen, ging in nur zwei Steps:

UNGETESTET:

Zitat:
Sie haben Recht, das Kopieren des Arrays ist in diesem Fall nicht unbedingt erforderlich. Sie können direkt auf den Speicherbereich von AData zugreifen, um die Überprüfung durchzuführen. Das Entfernen des Kopiervorgangs kann die Leistung der Funktion verbessern, insbesondere wenn sie häufig aufgerufen wird.

Hier ist eine überarbeitete Version des Codes, die das Kopieren vermeidet:
Delphi-Quellcode:
function GetBytesFormat(const AData: TBytes): Integer;
begin
  Result := -1;
  if Length(AData) < 8 then Exit;

  case AData[0] of
    $FF: if CompareMem(@AData[0], @[$FF, $D8, $FF], 3) then Result := 0; // JPEG
    $89: if CompareMem(@AData[0], @[$89, $50, $4E, $47, $0D, $0A, $1A, $0A], 8) then Result := 1; // PNG
    $47: if CompareMem(@AData[0], @[$47, $49, $46, $38], 4) then Result := 2; // GIF
    $42: if CompareMem(@AData[0], @[$42, $4D], 2) then Result := 3; // BMP
    $00: if CompareMem(@AData[0], @[$00, $00, $01, $00], 4) then Result := 4; // ICO
    $49, $4D:
      if CompareMem(@AData[0], @[$49, $49, $2A, $00], 4) or
         CompareMem(@AData[0], @[$4D, $4D, $00, $2A], 4) then Result := 5; // TIF/TIFF
  end;
end;
Zitat:
In dieser Version wird direkt auf den Speicherbereich von AData zugegriffen, um die notwendigen Überprüfungen durchzuführen.
Dadurch wird der zusätzliche Kopiervorgang vermieden.
Das Ergebnis finde ich gar nicht so verkehrt, obwohl es ja nur ein von einem Text-Parser stammt
  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:01 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