Thema: Delphi Code kürzen

Einzelnen Beitrag anzeigen

Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Code kürzen

  Alt 24. Jan 2005, 08:46
Zitat von Spider:
Wie könnte man das ganze kürzen:

Delphi-Quellcode:
if (Pos('.asm', FileName) > 0) then
    GetDoc.Code.Highlighter := SynAsm
  else
  if (Pos('.cs', FileName) > 0) then
    GetDoc.Code.Highlighter := SynCS
  if (Pos('.c', FileName) > 0) or
    (Pos('.cpp', FileName) > 0) or
    (Pos('.h', FileName) > 0) or
    (Pos('.hpp', FileName > 0) then
    GetDoc.Code.Highlighter := SynCpp
Das ist jetzt nur ein kleines Stück davon. Das geht so noch weiter. Wie kann man das kürzen? Geht das überhaupt?
Ja, nämlich wenn man vorher noch eine Hilfsfunktion deklariert:
Delphi-Quellcode:
function StrIdx(str: string; strArr: array of string): Integer;
var si: Integer;
begin
 Result:= -1;
 for i:=0 to High(strArr) do
  if str= strArr[si] then begin
   Result:= si;
   Break;
  end;
end;

...
//Abfrage
case StrIdx( Endung, ('.asm','.cs','.c','.cpp','.h','.hpp')) of
 0: GetDoc.Code.Highlighter := SynAsm;
 1: GetDoc.Code.Highlighter := SynCs;
 2..5: GetDoc.Code.Highlighter := SynCpp;
end;
Die string-Varaible Endung muss dann allerdings schon die Dateieindung enthalten, was man ja mit ExtractFileExt-Funktion machen kann.
Statt ('.asm','.cs','.c','.cpp','.h','.hpp') zu verwenden, könnte man auch eine Array of string-Konstante deklarieren und diese verwenden.

MfG
Binärbaum
//Edit: Da war noch ein Fehler im Code.
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat