Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DFCRC32 --> problem bei der procedur ansprechung (https://www.delphipraxis.net/4377-dfcrc32-problem-bei-der-procedur-ansprechung.html)

sharkx 26. Apr 2003 15:20


DFCRC32 --> problem bei der procedur ansprechung
 
Hallo :>

Ich benutze folgende Procedur um dateien zu vergleichen (CRC32 -> Sfv file)

Delphi-Quellcode:
function DFCheckSFV(Directory, SFVFileName: string; CallBackPerFile: DFCheckSFVFile): boolean;
var
  vSL: TStringList;
  Cnt: integer;
  FileName: string;
begin
  Result := false;
  if Directory[Length(Directory)] <> '\' then
    Directory := Directory + '\';

  vSL := TStringList.Create;
  try
    vSL.LoadFromFile(SFVFileName);
    for Cnt := 0 to vSL.Count - 1 do
      vSL[Cnt] := Trim(vSL[Cnt]);
    for Cnt := 0 to vSL.Count - 1 do
    begin
      if vSL[Cnt][1] <> ';' then
      begin
        FileName := Trim(Copy(vSL[Cnt], 1, Length(vSL[Cnt]) - 8));
        if Copy(vSL[Cnt], Length(vSL[Cnt]) - 7, 8) <> DFCalcCRC32(Directory + FileName) then
        begin
          if assigned(CallBackPerFile) then
            CallBackPerFile(Directory + FileName, false)
          else
            exit;
        end
        else
          if assigned(CallBackPerFile) then
            CallBackPerFile(Directory + FileName, true);
      end;
    end;
  finally
    vSL.Free;
  end;
  Result := true;
end;

Leider kapiere ich nicht wie ich diese procedur aufrufe?!

Aus der Dazugehörigen hilfe:

Zitat:

{
Vergleicht die in einer SFV-Datei befindlichen Prüfsummen von Dateien mit den Dateien in einem bestimmten
Verzeichnis.
Parameter:
Directory: Pfad zum Verzeichnis der zu prüfenden Dateien (es können nur Dateien in einem Verzeichnis
geprüft werden, da in der SFV-Datei die Dateinamen ohne Pfad stehen)
SFVFileName: Name der SFV-Datei
CallBackPerFile: nil oder eine Callback-Funktion mit der folgenden Signatur:
DFCheckSFVFile = procedure(FileName: string; OK: boolean);
Für jede Datei wird der Dateiname und das Ergebnis der Prüfung übergeben
Rückgabe: Ergebnis des gesamten Checks der SFV-Datei
}
function DFCheckSFV(Directory, SFVFileName: string; CallBackPerFile: DFCheckSFVFile): boolean;
so müsste doch das Aufrufen der Procedur wie folgt aussehen?!:

Delphi-Quellcode:
procedure TForm1.Start1Click(Sender: TObject);
begin
  DFCheckSFVFile(OpenDialog1.File: string; OK: boolean);

Da ich auch noch sehr sehr wenig mit Treads und der gleichem gemacht habe, wäre es sehr nett wenn einer mir die genaue Funktion von denen Variablen, Functionen und ähnlichem was in dieser DFCheckSFVFile(...) steht, erklärt.

Nach etlichen google versuchen, sowie das recherchieren in verschienden Foren hat mir leider nicht das Ergebniss gegeben was ich mir erhofft hatte.


Vielen dank im vorraus :>

[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]

APP 26. Apr 2003 17:59

Hallo,

Irgendwie blicke ich nicht ganz durch, da ich nicht weiss was 'Sfv' Files sind,
aber ohne alles zu verstehen und auf die Schnelle würde ich sagen, der Aufruf kann sein:

Delphi-Quellcode:
  IF DFCheckSFV('c:\', 'MyFile.sfv'; NIL) THEN
      BEGIN
// mach was (wenn Datei = DFCalcCRC32)
      END
   ELSE
      BEGIN
// mach was (wenn Datei <> DFCalcCRC32)
      END;
oder

Delphi-Quellcode:
  IF DFCheckSFV('c:\', 'MyFile.sfv', 'Ein Text',TRUE) THEN
// wie oben
wobei DFCheckSFVFile eine Prozedur mit folgenden Parameter ist

Delphi-Quellcode:
DFCheckSFVFile(FileName: string; OK: boolean);
begin
// Callback >>Prozedur<< ???
// Was Du da machst weiss ich nicht
end;
:?: Wobei ich mich etwas wundere, da ich der Meinung bin, Callbacks sollten immer Funktionen sein...

[EDIT] Darf auch eine Prozedur sein, wie ich nun festgestellt habe![/EDIT]

APP 26. Apr 2003 18:13

Hallo :evil:

Sag mal, warum stellst Du den halben Source einer Demo-Datei in das Forum ohne das Du den Link dazu angibst?

Zuerst nuckle ich mir eine Lösung für Dich aus den Fingern, dann merke ich erst, dass Zu Deiner Komponente ein Demoprojekt mitgeliefert wird!

Auf www.del-net.com: http://www.del-net.com/frmDownload.html]CRC32 - Code-Berechnung und SFV-Datei erzeugen/prüfen (mit Source)[/URL]

Das war unnötig!

sharkx 26. Apr 2003 19:35

1. Es war absolut net unnötig
2. Wenn ich nicht mehr dazu habe, kann ich auch nicht mehr dazu Posten
3. Habe ich auch keine Demo Datei


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 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