Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi String bearbeiten (https://www.delphipraxis.net/18782-string-bearbeiten.html)

bundy 24. Mär 2004 15:59


String bearbeiten
 
Hallo Leute

Meine Frage :

Ich habe einen Text der sich in einem Memo befindet in einen String geladen, und ich will Zeichen entfernen:

Delphi-Quellcode:
for n:=1 to lenght[s] do
begin
if s[n]=' ' then s[n]:='_' <--------FUNKTIONIERT
if s[n]='-' then s[n]:=''  <-------------Fehler string and char WARUM ?? (Soll nur gelöscht werden)
end;

Benedikt 24. Mär 2004 16:01

Re: String bearbeiten
 
Hi,

benutz doch die Delete-Funktion

bundy 24. Mär 2004 16:05

Re: String bearbeiten
 
Die wie funktioniert ? :gruebel:

bundy 24. Mär 2004 16:12

Re: String bearbeiten
 
kommt schon bitte HILFE :oops:

fkerber 24. Mär 2004 16:12

Re: String bearbeiten
 
Hi!

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
begin
str:='Test';
delete(str, 1,2);
showmessage(str);   //st
end;
Zitat:

Zitat von OH
Delphi-Syntax:

procedure Delete(var S: string; Index, Count:Integer);

Beschreibung

In Delphi entfernt Delete, beginnend mit S[Index], Count Zeichen aus dem String S. S ist eine String-Variable. Index und Count sind Integer-Ausdrücke.

Wenn index größer als die Länge von String oder kleiner als 1 ist, werden keine Zeichen gelöscht.

Werden mit Count mehr Zeichen angegeben, als beginnend bei Index im String vorhanden sind, wird der Rest des Strings gelöscht. Wenn Count kleiner oder gleich 0 ist, werden keine Zeichen gelöscht.

Ciao fkerber

Edit: Du pushst nach 7 Minuten???

Daniel 24. Mär 2004 16:20

Re: String bearbeiten
 
@Bundy:
Das "pushen" eigener Threads nach so kurzer Zeit (mit 7 Minuten dürftest Du trauriger Rekordhalter sein!) ist nicht erwünscht. :warn:

bundy 24. Mär 2004 16:20

Re: String bearbeiten
 
:thuimb: :thuimb: hy Danke dir :thuimb:

Leuselator 24. Mär 2004 16:23

Re: String bearbeiten
 
Mit "String[Index]" greifst Du nunmal auf einen einzelnen Char aus einer Kette zu, wenn Du nun eine Zuweisung der form "String[Index] :=" machst, erwartet Delphi auf der rechten Seite auch einen Char. Deine zwei Hochkommas, sind aber kein Char, sondern ein leerer String - daher knallt es.
wenn Du nicht delete nutzen möchtes, kannst Du sowas basteln:
Delphi-Quellcode:
function CleanUpString(Value      : String;
                       SearchChars : Array of Char;
                       ReplaceChars: Array of Char):String;
var i,j : Integer;
    WasReplaced : Boolean;
begin
  for i:=1 to length(Value) do begin
    WasReplaced := False;
    for j := 0 to High(SearchChars) do begin
      if Value[i] = SearchChars[j] then begin
        WasReplaced := True;
        if ReplaceChars[j] <> #0 then begin
          Result := Result+ReplaceChars[j];
          Break;
        end;
      end;
    end; // for j
    if not WasReplaced then Result := Result+Value[i];
  end; //for i
end;
Anwendung:
Delphi-Quellcode:
var MyString : String;
begin
  MyString := 'Das ist ein Test-String';
  MyString := CleanUpString(MyString,[' ','-'],['_',#0]);
Gruß

[Edit]immer wenn man zu hastig ist...[/Edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 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