Zitat von
Amateurprofi:
Dann beschäftigen sich die User damit dem TE zu erklären, warum er das nicht braucht, aber niemand beschäftigt sich mit dem Code selbst und weist auf eventuelle Fehler oder auf mögliche Optimierungen hin.
Mein "Optimierung":
- HasFormat(1) -> HasFormat(CF_TEXT)
- Bezeichner so schreiben, wie sie deklariert sind. z.B. inc -> Inc etc.
- Einrückungen nach Delphi Standard (so wie im Delphi
VCL Code eingerückt wird)
Delphi-Quellcode:
program ReplaceTabs;
{$APPTYPE CONSOLE}
uses
SysUtils, Clipbrd;
const
tablen = 3;
function Replace(
const s:
string):
string;
var
ps, pr: PChar;
len: Integer;
begin
SetLength(Result, Length(s) * tablen);
if s = '
'
then Exit;
ps := PChar(s);
pr := PChar(Result);
len := 0;
repeat
case ps^
of
#9:
begin
len := tablen - len
mod tablen;
while len > 0
do
begin
pr^ := '
';
Inc(pr);
Dec(len);
end;
end;
#10, #13:
begin
pr^ := ps^;
Inc(pr);
len := 0;
end;
else
begin
pr^ := ps^;
Inc(pr);
Inc(len);
end;
end;
Inc(ps);
until ps^ = #0;
pr^ := #0;
SetLength(Result, Integer(pr) - Integer(PChar(s)));
end;
begin
with ClipBoard
do
if HasFormat(CF_TEXT)
then
AsText := Replace(AsText);
end.