Entwickler-Ecke

Sonstiges (Delphi) - leerzeichen auslesen


lippi - Do 16.01.03 18:58
Titel: leerzeichen auslesen
hi, ich habe einen text und der soll nachher so ausshen:


hallo, ich bin torsten!

result:

hallo,<1>ich<1>bin<1>torston!


weiss einer wie das geht oder hat sogar source dafür?
und rückgängig machen wäre auch edel :-)

ich bin noch nicht so der hirsch in delphi und wir brauchen das für die schule.


thx im voraus!


Delete - Do 16.01.03 19:26

StringReplace, Rest siehe Hilfe.


Tino - Do 16.01.03 22:49

Hallo Lippi und herzlich Willkommen!

Soll das heißen das die Leerzeichen durch <1> ersetzt werden sollen?

Gruß
TINO


Raphael O. - Do 16.01.03 23:21


Quelltext
1:
neuerstring:=StringReplace(alterstring, ' ','<1>',[rfreplaceall]);                    


Fiji-Fighter


lippi - Fr 17.01.03 00:50

was mache ich wenn es zwei leerzeichen hat? ich sollte eine routine haben welche die leerzeichen ausliest und dann auch z.b.

<3> oder so reinschreibt...


Tino - Fr 17.01.03 10:40

lippi hat folgendes geschrieben:
was mache ich wenn es zwei leerzeichen hat? ich sollte eine routine haben welche die leerzeichen ausliest und dann auch z.b.

<3> oder so reinschreibt...

Warum sagst Du das nicht sofort?

Aber warum soll bei 2 Leerzeichen eine <3> eingetragen werden?

Gruß
TINO


Raphael O. - Fr 17.01.03 10:41


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var i,n:integer;
k:integer;
abbruch:boolean;

abbruch:=false;
k:=0;
for i:=1 to length(stringvar) do
begin
 if stringvar[i]=' ' then inc(k)
 else if k<>0 then 
  for n:= 1 to k do 
   begin
    stringvar[i-n]:='';
    if n=k then begin insert('<'+inttostr(k)+'>', stringvar, i-k); abbruch:=true;break;end;

   end;
if abbruch=true then break;
end;


funktioniert aber nur beim ersten vorkommen von ' ' denn danach hat sich ja die länge von stringvar geändert...

könntest alles in eine schleife einbinden: z.B. so


Quelltext
1:
2:
3:
4:
while leerzeichenvorhanden do
begin
...//das was oben steht
end;


Fiji-Fighter