Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi meine StrCharRemove geht nich... (https://www.delphipraxis.net/103997-meine-strcharremove-geht-nich.html)

a3rosol 25. Nov 2007 22:18


meine StrCharRemove geht nich...
 
ich mal wieder :)
tja wie der titel sagt...
Delphi-Quellcode:
function StrCharRemove(wort: string; C: Char): string;
var
  H: Integer;
begin
  for H := 1 to Length(wort) do
    if wort[H] = C then
      StringReplace(wort, C, '', []);
      Inc(H);
end;
ein zeichen wird eingegeben,nach dem die funktion suchen soll
wenn das zeichen gefunden wird soll es mit '' (also mit leerem char) ersetzt werden
das problem ist: es löscht den kompletten string
ich hab das blöde gefühl dass es mit dem '' zu tun hat

mkinzler 25. Nov 2007 22:24

Re: meine StrCharRemove geht nich...
 
1. die Schleife ist überflüssig.
2. das inc() ist überflüssig
3. Also ist eigentlich die ganze Funktion überflüsseig
Delphi-Quellcode:
function StrCharRemove(wort: string; C: Char): string;
begin
    result := StringReplace(wort, C, '', [rfReplaceAll]);
end;

a3rosol 25. Nov 2007 22:27

Re: meine StrCharRemove geht nich...
 
Zitat:

Zitat von mkinzler
1. die Schleife ist überflüssig.
2. das inc() ist überflüssig
3. Also ist eigentlich die ganze Funktion überflüsseig
Delphi-Quellcode:
function StrCharRemove(wort: string; C: Char): string;
begin
    result := StringReplace(wort, C, '', [rfReplaceAll]);
end;

nett ausgedrückt :-D
danke, ich wusste nicht dass man rfreplaceall schreiben kann...

€dit: weißt du zufällig wie man nen string in umgekehrter reihenfolge ausgeben kann?

mkinzler 25. Nov 2007 22:31

Re: meine StrCharRemove geht nich...
 
Du siehst es ist manchmal ratsam die Hilfe bach möglichen Paramertern zu fragen.
Und warum die manuelle Inkrementierung (doppelt) falsch ist wei0t du hoffentlich auch.

a3rosol 25. Nov 2007 22:33

Re: meine StrCharRemove geht nich...
 
Zitat:

Zitat von mkinzler
Du siehst es ist manchmal ratsam die Hilfe bach möglichen Paramertern zu fragen.
Und warum die manuelle Inkrementierung (doppelt) falsch ist wei0t du hoffentlich auch.

stimmt... for inkrementiert ja automatisch :wall: aber ich hab ne andere funktion als vorlage benutzt deswegen kam das so blöd...

mkinzler 25. Nov 2007 22:37

Re: meine StrCharRemove geht nich...
 
Ja und es müsste ja eher ein dec sein. Sonst würde Eine Ersetzung von l in 'hallo' 'halo' statt 'Hao' ergeben.
Das das Ergebnis ein Leerstring war, lag am fehlen resultes.
Das Umdrehen des Strings erreichst du einfach durch eine umgekehrte Schleife

a3rosol 25. Nov 2007 22:42

Re: meine StrCharRemove geht nich...
 
umgekehrte schleife?
ich weiß was du meinst (den string in einer schleife umdrehen) aber wie mach ich das quellcodemäßig?
Delphi-Quellcode:
for i := 1 to Length(wort) do
und dann?

mkinzler 25. Nov 2007 22:44

Re: meine StrCharRemove geht nich...
 
Nein
Delphi-Quellcode:
s := ''
for i := Length( wort) downto 1 do
    s := s + wort[i];

Luckie 25. Nov 2007 22:46

Re: meine StrCharRemove geht nich...
 
Zitat:

Zitat von mkinzler
Und warum die manuelle Inkrementierung (doppelt) falsch ist wei0t du hoffentlich auch.

Wundert mich eigentlich, dass das der Compiler schluckt.

Cyberbob 25. Nov 2007 22:51

Re: meine StrCharRemove geht nich...
 
Warum den das Luckie. Er hat das Inc(I) doch nach der Schleife stehen! Das geht ohne Probleme, auch wenns unsinn ist!


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

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