Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie mach ich ein hallöchen zu einem h.l.ö.h.n ? (https://www.delphipraxis.net/37351-wie-mach-ich-ein-halloechen-zu-einem-h-l-oe-h-n.html)

glkgereon 5. Jan 2005 09:45

Re: wie mach ich ein hallöchen zu einem h.l.ö.h.n ?
 
ich sag es geht noch kürzer:

Delphi-Quellcode:
function workstring(Value:string):string;
var i:integer;
begin
  for i:=1 to length(Value) do
    if (i mod 2=0) and (Value[i]<>' ') then Value[i]:='.';
  Result:=Value;
end;
oder gar so:

Delphi-Quellcode:
procedure workstring(var Value:string);
var i:integer;
begin
  for i:=1 to length(Value) do
    if (i mod 2=0) and (Value[i]<>' ') then Value[i]:='.';
end;
Edit: bedingung übersehen :duck:

Nothine 5. Jan 2005 10:15

Re: wie mach ich ein hallöchen zu einem h.l.ö.h.n ?
 
Zitat:

Zitat von Christian Seehase
Moin Magier,

weil's mir gerade so ins Auge springt:
Die Variablen s2 und gerade kannst Du einsparen:

Delphi-Quellcode:
function replacetext(workstring:string):string;

var
  i : integer;
  s : string;

begin
  s := workstring;
  for i := 1 to length(s) do begin
    if (i mod 2 = 0) and (s[i] <> ' ') then s[i] := '.';
  end;
  result :=s;
end;

das "i mod 2 = 0" reicht aber nicht aus, denn bspw. bei dem text "Hase Hase" kommt bei deiner funktion "H.s. .a.e" raus...
um sowas zu umgehen kann man z.B. eine zweite zählvariable einbauen, die die position ab dem letzten leerzeichen enthält, z.B. so:
Delphi-Quellcode:
function ReplaceText(const WorkString: string): string;
var I,C: Integer;
    S: string;
begin
  S := WorkString;
  C := 0;
  for I := 1 to Length(S) do begin
    Inc(C);
    if S[I] <> ' ' then begin
      if C mod 2 = 0 then
        S[I] := '.';
    end else C := 0;
  end;
  Result := S;
end;
dann wird aus dem doppelten hasen (über sinngehalt wird sich nich gestritten :mrgreen:) auch wieder "H.s. H.s." :wink:

Christian Seehase 5. Jan 2005 12:10

Re: wie mach ich ein hallöchen zu einem h.l.ö.h.n ?
 
Moin Christian,

Zitat:

Zitat von Chris1986
Warum benutzt du zum Zerpflücken des Strings nicht direkt die Variable "workstring"?

Gewohnheit.
Ich verwende bei Parametern immer var oder const.

@Nothine:
Zitat:

Zitat von Nothine
das "i mod 2 = 0" reicht aber nicht aus,

bezüglich der Vorgabe schon ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz