Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!
Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.
Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.
[Opgelost] Lazarus - Hoe vervang je zogenaamde "offending characters" van een file of pad
Delphi, Lazarus, Free Pascal
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2869
Topic starter
17 december 2015 22:51
Dit is een kleine functie die ik gemaakt heb om zogenaamde "offending characters" (tekens die niet in een bestandsnaam of directory pad mogen staan) om te zetten naar escape versies zodat jouw programma er gewoon mee kan werken.
Onder MacOS X mag je behoorlijk wat rare tekens gebruiken in een bestandsnaam of pad, maar e moet ze dan wel vaak van escape codes voorzien (slash). Als voorbeeld: een spatie wordt slash spate ( ).
Omdat er een aantal uitzonderingen zijn, heb ik er maar een kleine functie voor gemaakt.
N.b.: Ik heb dit oorspronkelijk voor MacOS X geschreven. Linux zal waarschijnlijk vergelijkbaar werken, maar voor Windows heb ik geen idee.
function EscapePath(path:string):string;
var newpath, SpecialChars:string;
Ch:char;
begin
SpecialChars:='!?&*@$|:;{}<>()[]`''" '; // the offending character list
newPath:=path;
for Ch in SpecialChars do
newpath:=StringReplace(newpath,Ch,''+Ch,[rfReplaceAll]);
EscapePath:=newpath;
end;