AGB  ·  Datenschutz  ·  Impressum  







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

ListView Dateiendungen Filtern

Ein Thema von Tommy1988 · begonnen am 12. Mai 2007 · letzter Beitrag vom 16. Mai 2007
Antwort Antwort
Tommy1988
(Gast)

n/a Beiträge
 
#1

ListView Dateiendungen Filtern

  Alt 12. Mai 2007, 18:56
Ich habe eine ListView, dort werden alle Dateien aus einem zuvor ausgewählten
Verzeichnis aufgelistete.

Ich habe versucht, diese zu filter, aber vergeblich:

[delphi
if FindFirst(VerzName+'*.txt',faAnyFile,SR)=0 then begin[/delphi]

So lautete es richtig, er listete alle (*:*) Dateien auf.

Mein Versuch:
Delphi-Quellcode:
 
    if FindFirst((VerzName+'*.txt') or
    (VerzName+'*.htm') or
    (VerzName+'*.html') or
    (VerzName+'*.php'),faAnyFile,SR)=0 then begin
//Dateien gefiltert ins ListView schreiben
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ListView Dateiendungen Filtern

  Alt 12. Mai 2007, 20:28
dann tu doch faAnyFile raus

ersetz es durch 0.

äähmmm... moment mal... du kannst doch keine string-literale boolesch verknüpfen

Das geht so nicht

probiers eher so:
if FindFirst('*.txt, *.htm, *.html, *.php',0,SR)=0 then begin oder auch mit semikolons getrennt.

EDIT: Aber das wird glaube ich nicht funktionieren.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#3

Re: ListView Dateiendungen Filtern

  Alt 13. Mai 2007, 17:42
Guten abend allerseits.

Leider funktioniert das nicht so richtig.

Das LiestView stellt keinerlei Inhalte mehr an, nachdem ich den Quellcode abgeändert habe.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: ListView Dateiendungen Filtern

  Alt 13. Mai 2007, 19:38
Ansonsten ginge auch:
FindFirst(VerzName + '*', faAnyFile, sr) = 0 ==> Problem er sieht 1. alle Dateien, 2. auch Ordner und 3. auch "." und ".." also
if (sr.Name <> '.') and (sr.Name <> '..') and ((sr.Attr and faDirectory) = faDirectory) then und der rest dann:
Delphi-Quellcode:
ext := ExtractFileExt(sr.Name);
if (ext = '.txt') or (ext = '.htm') or (ext = '.html') or (ext = '.php') then
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#5

Re: ListView Dateiendungen Filtern

  Alt 16. Mai 2007, 15:56
Guten Tag, leider funktioniert das nicht.

Der komplette Code sieht so aus:

Delphi-Quellcode:
procedure VerzeichnisEinlesen(VerzName:string);
var NewItem : TListItem;
    Info : TSHFileInfo;
    SR : TSearchRec;
    ext : String;
begin
  if VerzName[length(VerzName)]<>'\then
    VerzName:=VerzName+'\';
  with Form1 do begin
    ListView.Items.Clear;
if FindFirst(VerzName+'*.*',faAnyFile,SR)=0 then begin

      repeat
        if (length(SR.Name)>0) and (SR.Name[1]<>'.') then begin
          NewItem:=ListView.Items.Add;
          NewItem.Caption:=SR.Name;
          SHGetFileInfo(PChar(VerzName+SR.Name),
          0,Info,SizeOf(TSHFileInfo),SHGFI_SYSIconIndex
          or SHGFI_TYPENAME);
          NewItem.ImageIndex:=Info.IIcon;
          NewItem.SubItems.Add(Info.szTypeName);
        end;
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
    ListView.CustomSort(@NamenSortProc, 0);
  end;
end;
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: ListView Dateiendungen Filtern

  Alt 16. Mai 2007, 16:11
Hmmm, funktioniert eigentlich ganz gut. Was soll denn nicht gehen...
Gruss Gremlin
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#7

Re: ListView Dateiendungen Filtern

  Alt 16. Mai 2007, 16:46
Zitat von xZise:
Ansonsten ginge auch:
FindFirst(VerzName + '*', faAnyFile, sr) = 0 ==> Problem er sieht 1. alle Dateien, 2. auch Ordner und 3. auch "." und ".." also
if (sr.Name <> '.') and (sr.Name <> '..') and ((sr.Attr and faDirectory) = faDirectory) then und der rest dann:
Delphi-Quellcode:
ext := ExtractFileExt(sr.Name);
if (ext = '.txt') or (ext = '.htm') or (ext = '.html') or (ext = '.php') then
Das da oben meine ich Oder ich setze es einfach nur falsch ein.
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: ListView Dateiendungen Filtern

  Alt 16. Mai 2007, 16:56
So sollte es funktionieren

Delphi-Quellcode:
  if VerzName[length(VerzName)]<>'\then
    VerzName:=VerzName+'\';
  with Form1 do begin
    ListView.Items.Clear;
    if FindFirst(VerzName+'*.*',faAnyFile,SR)=0 then begin
      repeat
        if (sr.Name <> '.') and (sr.Name <> '..') and ((sr.Attr and faDirectory) <> faDirectory) then begin
          ext := ExtractFileExt(sr.Name);
          if (ext = '.txt') or (ext = '.htm') or (ext = '.html') or (ext = '.php') then begin
            NewItem := ListView.Items.Add;
            NewItem.Caption := SR.Name;
            SHGetFileInfo(PChar(VerzName+SR.Name),
            0,Info,SizeOf(TSHFileInfo),SHGFI_SYSIconIndex
            or SHGFI_TYPENAME);
            NewItem.ImageIndex := Info.IIcon;
            NewItem.SubItems.Add(Info.szTypeName);
          end;
        end;
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
    ListView.CustomSort(@NamenSortProc, 0);
  end;

Eventuell solltest du noch die Extensions auf Gross/Kleinbuchstaben prüfen, wenn dies notwendig ist

Delphi-Quellcode:
  [..]
  ext := Uppercase(ExtractFileExt(sr.Name));
  if (ext = '.TXT') or (ext = '.HTM') or (ext = '.HTML') or (ext = '.PHP') then begin
    NewItem := ListView.Items.Add;
Gruss Gremlin
  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 09:36 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