Operacje na stringach

0

Czy istnieje możliwość, żeby funkcjia Pos(#10, string)
szukała w stringu znaku #10, ale takiego przed którym
nie ma #13, tylko co kolwiek innego?

Wiem oczywiście że można wszystkie #13#10 zamienić na "coś tam"
później zostaną same pojedyncze #10 , a potem te "coś tam"
z powrotem zamienić na #13#10, ale to zajmuje 3 razy więcej czasu
dlatwgo szukam szybszego rozwiązania.--__________________________________
Pozdrawiam...
piechnat

0

Odpuść sobie Pos i wyszukuj liniowo po dwa znaki i sprawdzaj czy pierwszy jest różny od #13 (Wiem, że to wolno, ale Pos nie działa wcale szybciej. Jak chcesz szybkie algorytmy wyszukiwania to zerknij na pl.comp.lang.delphi to zobaczysz jakie tam mają sposoby :O )--Jest jeszcze jeden błąd ... :)

--------------Blok reklamowy :) -----
kanał: #4programmers.net lub #4programmers
w sieci POLNet
serwer np.: warszawa.ircnet.pl

0

Dryobates napisał:
Odpuść sobie Pos i wyszukuj liniowo po dwa znaki i sprawdzaj czy pierwszy jest różny od #13 (Wiem, że to wolno, ale Pos nie działa wcale szybciej. Jak chcesz szybkie algorytmy wyszukiwania to zerknij na pl.comp.lang.delphi to zobaczysz jakie tam mają sposoby :O )

Sorry że jestem taki leniwy ale mógł byś żucić przykładem
bo trochę się nie orientuje a to pl.comp.lang.delphi to mi nie
wygląda na adres jakiejś strony :((--__________________________________
Pozdrawiam...
piechnat

0

piechnat napisał:
&gtSorry że jestem taki leniwy ale mógł byś żucić przykładem
&gtbo trochę się nie orientuje a to pl.comp.lang.delphi to mi nie
&gtwygląda na adres jakiejś strony :((
&gt
To jest grupa dyskusyjna :)

Poczytaj sobie, bo za dużo tego jest do kopiowania.
A algorytmy masz tu: http://www.lovis.net/pub/patterntest/testSearchUnit.htm

--
Jest jeszcze jeden błąd ... :)

--------------Blok reklamowy :) -----
kanał: #4programmers.net lub #4programmers
w sieci POLNet
serwer np.: warszawa.ircnet.pl

0

piechnat a co chcesz zrobic z tymi #10 ? :)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

piechnat napisał:

&gt
&gtSorry że jestem taki leniwy ale mógł byś żucić przykładem

Oj, jaki leniwy...

To bedzie cos w tym stylu

var
s: string;
i: integer;

begin
if Length(s)&gt1 then
for i:=2 to Length(s) do
if s[i]=#10 and s[Pred(i)]&lt&gt#13 then znalazlem;
end;

--
Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

LKS napisał:
piechnat a co chcesz zrobic z tymi #10 ? :)

Chciałem zrobić sobie krótki programik do
zwijania i rozwijania wierszy w kodzi HTML.
No wiesz, zamiast [enterów] są takie kwadraciki
w kodzie i nic nie można odczytać dlatego
musze te kwadraty czyli #10 zamienić na #13#10
żeby dało się to po ludzku postudiować :) --__________________________________
Pozdrawiam...
piechnat

0

&gtTo bedzie cos w tym stylu
&gt
&gtvar
&gt s: string;
&gt i: integer;
&gt
&gtbegin
&gtif Length(s)&gt1 then
&gt for i:=2 to Length(s) do
&gt if s[i]=#10 and s[Pred(i)]&lt&gt#13 then znalazlem;
&gtend;

Dzięki, już do mnie dotarło na czym to polega :)--__________________________________
Pozdrawiam...
piechnat

0

Ale ze mnie pierdoła :)
Już wymyśliłem...

function rozwin_wiersze(s: string): string;
begin
while Pos(#10, s) &gt 0 do
if s[Pred(Pos(#10, s))] = #13 then
begin
Result := Result + Copy(s, 1, Pos(#10, s));
Delete(s, 1, Pos(#10, s));
end
else
begin
Result := Result + Copy(s, 1, Pred(Pos(#10, s))) + #13#10;
Delete(s, 1, Pos(#10, s));
end;
Result := Result + s;
end;--__________________________________
Pozdrawiam...
piechnat

1 użytkowników online, w tym zalogowanych: 0, gości: 1