AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView -> FileExists -> Checked

Ein Thema von sharkx · begonnen am 28. Apr 2003 · letzter Beitrag vom 28. Apr 2003
Antwort Antwort
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
Benutzerbild von Specialwork
Specialwork

Registriert seit: 10. Jan 2003
Ort: Schwall
71 Beiträge
 
Delphi 8 Professional
 
#2
  Alt 28. Apr 2003, 22:35
Hallo sharkx,

Die einfachste Erklärung könnte sein, dass Du die TListview-Eigenschaft CheckBoxes auf false stehen hast.

Gruß, Tom
Thomas van Veen
Es gibt keine Probleme, nur Lösungen, auf die man nicht gleich kommt !
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 28. Apr 2003, 22:36
Per Hand kann ich die CheckBoxes ja aktivieren, nur in der Proecdur selbst nicht :/

CheckBoxes steht auf True!
  Mit Zitat antworten Zitat
Benutzerbild von Specialwork
Specialwork

Registriert seit: 10. Jan 2003
Ort: Schwall
71 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 28. Apr 2003, 22:55
Hallo sharkx,

GetFileSize(hFile: Cardinal: lpFileSizeHigh: Pointer): Cardinal; Du übergibst der Funktion GetFileSize nur einen Parameter des falschen Typs !?

Delphi 6 Professional

Gruß, Tom
Thomas van Veen
Es gibt keine Probleme, nur Lösungen, auf die man nicht gleich kommt !
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 28. Apr 2003, 23:11
hmm, noe .. GetFileSize funktioniert 1a.
Es funktioniert alles bis auf das checked = true der gefundenen files
  Mit Zitat antworten Zitat
Benutzerbild von Specialwork
Specialwork

Registriert seit: 10. Jan 2003
Ort: Schwall
71 Beiträge
 
Delphi 8 Professional
 
#6
  Alt 28. Apr 2003, 23:19
Komisch ist das schon,

hast Du evtl. eine eigene GetFileSize Methode geschrieben.

Gruß, Tom

Ich hab Dir mal ne kleine App gebastelt !
Angehängte Dateien
Dateityp: zip tlistview.items.checked.zip (253,0 KB, 11x aufgerufen)
Thomas van Veen
Es gibt keine Probleme, nur Lösungen, auf die man nicht gleich kommt !
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 28. Apr 2003, 23:35
Die Function GetFileSize:

Delphi-Quellcode:
function TForm1.GetFileSize(Filename: string): integer;
var
  SR: TSearchRec;
begin
  if FindFirst(Filename, faAnyFile, SR) = 0 then
  begin
    Result := SR.Size;
  end
  else
  begin
    Result := -1;
  end;
  FindClose(SR);
end;
Vielen dank für des kleine Programm :>

[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


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