Witam.
Jak usunąć wszystkie znaki enter ze stringa ?
Pozdrawiam.
Witam.
Jak usunąć wszystkie znaki enter ze stringa ?
Pozdrawiam.
Można tak:
var s,s1: string;
i: integer;
begin
s:='abc'+#13+'def';
for i:= 1 to length(s) do
if s[i]<>#13 then s1:=s1+s[i];
s:=s1;
end;
albo tak:
var s: string;
i: integer;
znaleziono: boolean;
begin
s:='abc'+#13+'def'+#13+'efg';
repeat
znaleziono:=true;
i:=Pos(#13,s);
if i<>0 then
begin
delete(s,i,1);
znaleziono:=false;
end;
until znaleziono;
end;
przy dłuższych łańcuchach, musisz je jakoś podzielić, bo może wyskoczyć błąd.
Możesz też wczytać stringa do TMemo a potem odzytać i wstawiać każdą linię, choć to bardziej skomplikowane to powinno być szybciej bo nie przeszukujesz całego stringa litera po literze tylko zapisujesz i odzytujesz całe wiersze. :P
A nie lepiej
while Pos(' ', S) <> 0 do Delete(S, Pos(' ', S), 1);
Gdzie S to Twój string ?
StringReplace(s, #13+#10, '', [rfReplaceAll, rfIgnoreCase]);
mam podobny problem.
Tyle ze jak uzwam
StringReplace(s, #13+#10, '', [rfReplaceAll, rfIgnoreCase]);
to w tych miejscach zamiast enterow robia sie takie prostokaciki. Co yrobi bz zamiast ich po prostu nic nie bylo
Fazzer napisał(a)
mam podobny problem.
Tyle ze jak uzwam
StringReplace(s, #13+#10, '', [rfReplaceAll, rfIgnoreCase]);
to w tych miejscach zamiast enterow robia sie takie prostokaciki. Co yrobi bz zamiast ich po prostu nic nie bylo
Jakie prostokąciki? Tzn. jaki to jest znak ASCII?(podaj kod)
Poza tym w momencie pozbywania się enterów flaga rfIgnoreCase jest niepotrzebna ;)
Jeśli z jakiegoś powodu za Enter zamiast pustego łańcucha daje Ci jakiś znak, to możesz to zrobić bardziej psychodelicznie, np:
s:=StringReplace(s, #13+#10, '<enter>', [rfReplaceAll]);
s:=stringReplace(s, '<enter>', '', [rfReplaceAll]);
:D
Dzięki już wszystko działa, ale nie musiałem robić
s:=StringReplace(s, #13+#10, '<enter>', [rfReplaceAll]);
s:=stringReplace(s, '<enter>', '', [rfReplaceAll]);
dzięki za rady