Einzelnen Beitrag anzeigen

sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#1

ListView -> FileExists -> Checked

  Alt 28. Apr 2003, 22:23
Hallo :>

Ich habe Folgendes Problem:

ich lade in eine ListView den Inhalt einer Datei. In dieser Datei stehen Dateinamen und deren CRC32 Wert. Nun Prüfe ich wenn die Datei geladen wird, ob die Dateien die in dieser sogenannten SFV file stehen auch in diesem DIR gibt, so adde ich diese mit der FileSize in das ListView.
ist die File aber nicht da, schreib ich in das ListView als SubItem 'not found'
Nun Sollen auch alle gefundenen Files auch gleichzeitig die CheckBox aktiviert werden. jedoch scheitert da mein Source (ohne jegliche Fehlermeldung) ...

Delphi-Quellcode:
procedure TForm1.Open1Click(Sender: TObject);
var
  sfvfile: TStrings;
  filen: string;
  i: integer;
  item: TListitem;
begin
  if opendialog1.Execute then
  begin
  // ListView Clearen und Status auf 0 setzen
    ListView1.Items.Clear;
    ClearStatus;
  // SFV File auslesen
    sfvfile := TStringList.Create;
    sfvfile.LoadFromFile(opendialog1.FileName);

    for i := 0 to sfvfile.Count - 1 do
    begin
  // Kommentare überspringen
      if (Pos(';', sfvfile.Strings[i]) = 1) or (Pos(' ', sfvfile.Strings[i]) = 1) then
        continue;
      filen := Copy(sfvfile.Strings[i], 1,Pos(' ', sfvfile.Strings[i]) - 1);

  // Existiert Datei -> Subitem[size] - Dateigroesse -> Checke Listeneintrag
      if fileexists(filen) then
      begin
        item := Listview1.Items.Add;
        item.SubItems.Add(filen);
        item.SubItems.Add(IntToStr(GetFileSize(filen)));
        filen := sfvfile.Strings[i];
        Delete(filen, 1,Pos(' ', sfvfile.Strings[i]));
        filen := Trim(filen);
        item.SubItems.Add(filen);
        item.SubItems.Add(''); // do not remove !!!
        ListView1.Items.Item[item.index].Checked := fileexists(filen);
      end
  // Existiert datei NICHT -> Subitem[size] - not found
      else
      begin
        if length(filen) = 0 then continue;
        item := Listview1.Items.Add;
        item.SubItems.Add(filen);
        item.SubItems.Add('not found');
        item.SubItems.Add(''); // do not remove !!!
        item.SubItems.Add(''); // do not remove !!!
      end;
    end;
  // SFV File freigeben | Start Button enablen | Alle Not Found Files zählen
    sfvfile.Free;
    Start1.Enabled := True;
    Label3.Caption := IntToStr(NotFound(ListView1)) + ' Not Found';
  end;
end;
[edit=Daniel B]Delphi-Tags ergänzt. MFG Daniel B.[/edit]
  Mit Zitat antworten Zitat