Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#20

Re: Code-Formatierung

  Alt 9. Feb 2010, 02:04
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.
Thomas
  Mit Zitat antworten Zitat