diff options
-rw-r--r-- | tools.pas | 59 |
1 files changed, 59 insertions, 0 deletions
@@ -48,6 +48,7 @@ function unescape(s: string): string; function escape(s,toe,es: string): string; function escapeStringToRegex(s: string; typ: tRegexTyp; extras: string = ''): string; inline; procedure ersetzeAlleVorkommen(var worin: string; was,wodurch: string); +function unterVerzeichnisRegex(dateien: array of const): string; // Routinen für sha512-Prüfsummen @@ -413,6 +414,64 @@ begin end; end; +function unterVerzeichnisRegex(dateien: array of const): string; +var + i,j: longint; + dats: tStringList; + s: string; + rekursiv: boolean; +begin + result:=''; + dats:=tStringList.create; + for i:=0 to length(dateien)-1 do + case dateien[i].vType of + vtChar: + dats.add(dateien[i].vChar); + vtWideChar: + dats.add(string(dateien[i].vWideChar)); + vtString: + dats.add(string(dateien[i].vString)); + vtPChar: + dats.add(dateien[i].vPChar); + vtPWideChar: + dats.add(dateien[i].vPWideChar); + vtAnsiString: + dats.add(string(dateien[i].vAnsiString)); + vtWideString: + dats.add(string(dateien[i].vWideString)); + vtObject: + if dateien[i].vObject is tStringList then begin + for j:=0 to (dateien[i].vObject as tStringList).count-1 do + dats.add((dateien[i].vObject as tStringList)[j]); + end + else + fehler('unterVerzeichnisRegex Argument Nummer '+intToStr(i)+' ist ein Klasse, aber keine StringList!'); + else + fehler('unterVerzeichnisRegex Argument Nummer '+intToStr(i)+' ist kein String!'); + end{of case}; + + for i:=0 to dats.count-1 do begin + s:=dats[i]; + rekursiv:=leftStr(s,1)='1'; + delete(s,1,1); + if rekursiv then begin + s:=extractFilePath(s); + while rightStr(s,1)='/' do + delete(s,length(s),1); + end; + s:=escapeStringToRegex(s,rtFpc); // "*" soll nicht escaped werden, müsste bei rtFpc aber eigentlich escaped werden! + s:=escape(s,'*','[^/]'); + if leftStr(s,1)='/' then // absoluter Pfad + s:='^'+s; + result:=result+'|'+s; + if rekursiv then + result:=result+'(/|$)' + else + result:=result+'$'; + end; + delete(result,1,1); +end; + // Routinen für sha512-Prüfsummen var |