Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Rekursiv Blanks aus String entfernen (https://www.delphipraxis.net/3868-rekursiv-blanks-aus-string-entfernen.html)

[TP]Hawk274 3. Apr 2003 16:12


Rekursiv Blanks aus String entfernen
 
Code:
function StrRemoveBlanks( s: string ): string;
var i: integer;
begin
  result := '';
  for i := 1 to length(s) do
    if s[i] <> ' ' then result := result + s[i];
end;
Wollte nun dafür eine rekursive Lösung schreiben, aber ich komme nicht drauf.
Habe mit Rekursion auch noch so meine Problemchen. Vielleicht könnt ihr mir mal ein wenig auf die Sprünge helfen?

sakura 3. Apr 2003 16:23

Ich weiss zwar nicht, warum Du es unbeding rekursiv willst, aber bitte:

Delphi-Quellcode:
function RemoveSpaces(Line: string): string;
var
  Sp: Integer;
begin
  Sp := Pos(#32, Line);
  if Sp > 0 then
    Result := Copy(Line, 1, Sp-1) + RemoveSpaces(Copy(Line, Sp+1, MaxInt))
  else
    Result := Line;
end;
...:cat:...

alex 4. Apr 2003 10:33

in diesem fall ist keine rekursion bzw. eigene funktion nötig. nimm einfach:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

lg
alex

Luckie 4. Apr 2003 10:43

Zitat:

Zitat von alex
in diesem fall ist keine rekursion bzw. eigene funktion nötig. nimm einfach:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

Mag stimmen, aber er hat explizit nach einer rekursiven Lösung gefargt, da gehe ich da von aus, es war eien Übung oder so.

[TP]Hawk274 6. Apr 2003 18:38

@sakura
erst einmal danke, für die fertige Lösung.

Zitat:

Mag stimmen, aber er hat explizit nach einer rekursiven Lösung gefargt, da gehe ich da von aus, es war eien Übung oder so.
Du hast es erfasst! :hello: Es war eine Übung!
Zitat:

in diesem fall ist keine rekursion bzw. eigene funktion nötig. nimm einfach:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
Klar, ich kann die Standard Funktionen nehmen. Aber will doch auch mal selber was lernen :wink: und weil ich mit Rekursion noch so meine Probleme habe, war das halt ein Beispiel an dem ich das ausprobieren wollte!

Kennt jemand von euch vielleicht noch Programmteile die man u.a. auch rekursiv lösen kann

nailor 6. Apr 2003 19:10

Ja, Ordner durchsuchen kann man wunderbar rekursiv machen!

PS: Oder acht Damen so auf ein Schachbrett klatschen, dass keine die andere schlagen kann, ist auch rekursiv machbar.

[TP]Hawk274 6. Apr 2003 21:41

Huhu, eine der berühmten Backtracking Aufgaben (8 Dame) :mrgreen:

Ordner durchsuchen ist aber eine gute Idee! Das werde ich mal probieren.
thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 Uhr.

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