tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
1447
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Alex Duschek
    Alex Duschek Alex Duschek ist offline I AM AWESOME
    Registriert seit
    Apr 2004
    Ort
    Bartholomä (Baden-Württemberg)
    Beiträge
    514
    Ich hab hier eine leicht abgewandelte Form einer Suchfunktion aus dem Easy Helper...

    Code delphi:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    procedure GetFilesInDirectory(Directory: String; List: TStrings);
     
    procedure ScanDir(const Directory: String; List: TStrings);
    var
      SR: TSearchRec;
      ext: String;
    begin
      if FindFirst(Directory + '*', faAnyFile, SR) = 0 then try
        repeat
          if (SR.Name <> '.') and (SR.Name <> '..') then
          begin
            if (SR.attr and faDirectory) = faDirectory then
              ScanDir(Directory + SR.Name + '\', List)
            else begin
              ext := LowerCase(ExtractFileExt(SR.Name));
              if(ext ='.jpeg')or(ext='.jpg')or(ext='.bmp')or(ext='.gif')or(ext='.emf')or(ext='.wmf')or(ext='.ico') then
                List.Add(Directory + SR.Name)
            end;
          end;
        until FindNext(SR) <> 0;
      finally
        FindClose(SR);
      end;
    end;
     
    begin
      List.BeginUpdate;
      try
        List.Clear;
        if Directory = '' then Exit;
        if Directory[Length(Directory)] <> '\' then
          Directory := Directory + '\';
        ScanDir(Directory, List);
      finally
        List.EndUpdate;
      end;
    end;
    In Zeile 16 werden Dateiendungen überprüft. Da will ich Änderungen vornehmen,allerdings müssen jetzt etwa 30 Dateiendungen überprüft werden und ich will eigentlich nicht alles mit "if..." machen. Wie kann ich das geschickt lösen?
     
    Softwareentwickler

    Sehr gute Kenntnisse: Delphi, Java
    Gute Kenntnisse: PHP, ADA
    Grundkenntnisse: C/C++, C#, JavaScript

  2. #2
    Avatar von Alex Duschek
    Alex Duschek Alex Duschek ist offline I AM AWESOME
    Registriert seit
    Apr 2004
    Ort
    Bartholomä (Baden-Württemberg)
    Beiträge
    514
    Ok,ich habs hinbekommen. Folgendermaßen hab ich das Problem gelöst...

    1.) Ich hab mir ein "array of string" mit allen Dateiendungen als globale Konstante definiert.

    2,) Ich hab mir eine Funktion geschrieben, die überprüft, ob die Dateiendung (aus Zeile 15) in dem Array vorkommt. Die Funktion sieht so aus:
    Code delphi:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    function InArray(text:string;strings:array of string):boolean;
    var
      i:integer;
    begin
    result := false;
      For i := 0 to High(Strings) do begin
            If strings[i] = text then
              begin
              result := true;
              exit;
              end
            else
              result := false;
        end;
    end;
     
    Softwareentwickler

    Sehr gute Kenntnisse: Delphi, Java
    Gute Kenntnisse: PHP, ADA
    Grundkenntnisse: C/C++, C#, JavaScript

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 02.09.09, 15:51
  2. dateiendungen
    Von paini2008 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.07.08, 12:58
  3. Antworten: 5
    Letzter Beitrag: 07.11.05, 14:31
  4. Dateiendungen .tri und .blue
    Von pzyco im Forum Cinema 4D
    Antworten: 4
    Letzter Beitrag: 09.09.05, 19:24
  5. vu-meter mit vielen möglichst vielen led's...
    Von en2k im Forum Elektrotechnik
    Antworten: 1
    Letzter Beitrag: 14.07.03, 12:14