Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeichen ersetzen (https://www.delphipraxis.net/111083-zeichen-ersetzen.html)

FreakLitkowsky 29. Mär 2008 03:57


Zeichen ersetzen
 
Hallo Leute, ich habe mich lange nicht mehr gemeldet, jetzt tu ich es mal wieder und nerve euch gleich mit einer doofen Frage :(
Trotzdem: Ich hoffe ihr könnt mir helfen.


Also, folgendes Problem: Ich habe ein Programm für mich selbst erstellt, um Beispielsweise Dateien auf meinen FTP Server hochzuladen (Die Codes habe ich aus der Code-Library und funktionieren prächtig :-D ), jedoch will ich das Programm gerne "DAU Sicher" machen, d.H. bei der Nachfrage nach dem Namen, wie die hochzuladene Datei auf dem Server heißen soll, sollte man keine Leerzeichen verwenden (funktioniert auch nicht, ich habe es getestet).
Die Nameneingabe geschieht in einem "LabelEdit". Wenn man jetzt auch "Hochladen" klickt, sollten alle vorkommenden Leerzeichen in "LabelEdit.Text" durch Unterstriche (_) ersetzt werden.
Wisst ihr dafür vielleicht etwas? :zwinker:


Ich wäre euch sehr dankbar.


Grüße!

turboPASCAL 29. Mär 2008 05:54

Re: Zeichen ersetzen
 
Zitat:

Zitat von FreakLitkowsky
Wisst ihr dafür vielleicht etwas?

Japp, 2 min Zeit für die Suche der DP. :wink: Hier im Forum suchenZeichen AND ersetzen


So als Überlegung:

Delphi-Quellcode:
function CheckCharsInString(const BadChars: array of Char; RepleaceChar: Char; Text: string): string;
var i,n : integer;
begin
  for i := 1 to length(Text) do
    for n := 0 to High(BadChars) do
      if Text[i] = BadChars[n] then Text[i] := RepleaceChar;

  Result := Text;
end;

procedure ...
var
  s : string;
begin
  s := 'ABC$abc~123.ACB';
  s := CheckCharsInString(['$','~','.'], '_', s);

  // s ist nun 'ABC_abc_123_ACB'
end;
Nicht getested.

Blackheart 29. Mär 2008 05:56

Re: Zeichen ersetzen
 
oder StringReplace

Die Muhkuh 29. Mär 2008 10:00

Re: Zeichen ersetzen
 
Da wird aber die Funktion von Matti performanter sein, da Du sonst für jedes Zeichen einmal StringReplace aufrufen musst. Bei Matti reicht ein Aufruf für alle Zeichen.

Blackheart 29. Mär 2008 10:08

Re: Zeichen ersetzen
 
...vorkommenden Leerzeichen in "LabelEdit.Text" durch Unterstriche (_) ersetzt werden. :wink:
ansonsten hast Du natürlich recht.

FreakLitkowsky 30. Mär 2008 06:11

Re: Zeichen ersetzen
 
Dankeschön, werd gleich mal den Code ausprobieren :)

Edit: Ich hab das jetzt mit StringReplace gemacht: Funktioniert einwandfrei. Danke für eure Hilfe! :hello:

Fussball-Robby 30. Mär 2008 08:30

Re: Zeichen ersetzen
 
Zitat:

Zitat von Die Muhkuh
Da wird aber die Funktion von Matti performanter sein, da Du sonst für jedes Zeichen einmal StringReplace aufrufen musst. Bei Matti reicht ein Aufruf für alle Zeichen.

Wieso? Stringreplace mit rfReplaceAll?

Mfg

Matze 30. Mär 2008 09:18

Re: Zeichen ersetzen
 
Manus Aussage gilt, wenn man mehrere verschiedene Zeichen gleichzeitig ersetzen möchte.
Intern funktioniert StringReplace über eine Schleife und bei mehreren Zeichen müsste man diese Funktion mehrmals aufrufen, was mehrere Schleifendurchläufe zur Folge hätte. Bei Mattis Funktion (oder bei den aus der Code-Library) geht das mit einem einzigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.

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