Autor Beitrag
drohne200
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 25.04.04 01:20 
Servus,

wie kann ich die Steuerzeichen CR, LF oder Tab (#$D, #$A oder #9) innerhalb eines Strings entfernen :?:

Zum Beispiel "Hallo#$D#$Adas#9#9ist#$D#$ATest" danach sollte nur noch "DasisteinTest" im String stehe.

Ich habe schon das Forum durchsucht aber leider nix passendes gefunden.

Wäre Super wenn mir jemand helfen könnte!! :D

Danke
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 25.04.04 08:43 
Ist das so was wie hier?
Dann solltest du, um Verwirrungen auszuschließen, vielleicht mal erklären, ob du tatsächlich Steuerzeichen wie einen Zeilenumbruch (#13#10) oder einfach nur aufeinander folgende Zeichen (CHARs) in einem String meinst. Es macht nämlich einen Unterschied ob du
ausblenden Delphi-Quelltext
1:
'Hallo'#$d#$a'das'#9#9'ist'#$d#$a'Test'					

oder
ausblenden Delphi-Quelltext
1:
'Hallo#$d#$adas#9#9ist#$d#$aTest'					

schreibst. Und dieser Unterschied muss natürlich beachtet werden, wenn du versuchst, die unerwünschten Zeichen zu entfernen.
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: So 25.04.04 10:55 
Schon mal was von StringReplace gehört? Einfach die SteuerZeichen suchen und durch ein Leerzeichen ersetzten.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
drohne200 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 25.04.04 13:44 
Also ich meine

ausblenden Quelltext
1:
'Hallo'#$d#$a'das'#9#9'ist'#$d#$a'Test'					


Mit StringReplace funktionierts nicht da er die Steuerzeichen nicht beachtet.

Trim funktioniert irgendwie auch nicht was wohl daran liegt das meine Steuerzeichen nicht am Anfang oder Ende liegen sondern in der Mitte!

Im Moment komme ich keinen Schritt weiter ....
drohne200 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 25.04.04 15:37 
So habs gelöst :D :D :D :autsch:

Danke an alle die mir helfen wollten aber die Lösung dafür ist 'relativ' einfach :roll:

Delphi-Syntax:
ausblenden Delphi-Quelltext
1:
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.

Praktisch sieht das dann wie folgt aus :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
textversuch : string;
begin
  textversuch := 'Das ist'+#$D#$A#9+' ein Test';
  while (Pos(#$D#$A#9,textversuch) > 0do
  begin
    Delete(textversuch, pos(#$D#$A#9,textversuch), 3);
  end;
  ShowMessage(textversuch);
end;


Hinweis :!: :!: :!:
#$D oder #$A oder #9 sind jeweils als ein Zeichen zu betrachten!!

Danke an alle

:rofl:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 25.04.04 16:22 
Das hättest du aber mit StringReplace einfacher haben können.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Sa 07.08.04 13:28 
Hatte eben dasselbe Problem...
MathiasSimmack hat folgendes geschrieben:
Das hättest du aber mit StringReplace einfacher haben können.

Nein, StringReplace beachtet, wie oben schon angemerkt, die Steuerzeichen nicht, daher ist der vorgeschlagene Weg der einzige mir bisher als funktionierend bekannte Weg.
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Di 31.05.05 19:22 
hab grad nach sowas gesucht und bin auf das hier gestossen...

ist zwar schon alt der thread, aber es geht auch so :D
falls das nochmal jemand braucht:

ausblenden Delphi-Quelltext
1:
a:=StringReplace(a,char(#9),'',[rfReplaceAll, rfIgnoreCase]);					


das entfernt zB alle tabs...