Siema!
W Memo1 mam taką linię stringa:
[code]component="Edit1" /component[/code]
Chcę wykryć co jest w cudzysłowie w mniej więcej taki sposób (robię co mogę aby nie było problemów które opiszę później):
sssddd := Length(Copy(Memo1.Lines[0], Pos('component="', Memo1.Lines[0]) + 12, Pos('" /component', Memo1.Lines[0]) - 11));
sssddd1 := Copy(Memo1.Lines[0], Length(Memo1.Lines[0]) - Pos('component="', Memo1.Lines[0]) - 15, Length(Memo1.Lines[0]) - Length('" /component') - 11);
ShowMessage('sssddd1: ' + sssddd1);</delphi
Funkcja Pos2 jest taka:
<delphi>function TForm1.Pos2(_String_ : String; _Text_ : String; int : Integer; minus : Integer) : integer;
var
i : Integer;
znaleziono : Integer;
begin
i:=1;
znaleziono:=0;
repeat
if _String_[i] = _text_ then inc(znaleziono);
inc(i);
if znaleziono = int then result := i -minus;
until znaleziono = int;
end;
Wiem że to nie działa za dobrze, bo ciągle przy tym majstrowałem (przy kodzie rozkładającym stringa) ale chcę to zrobić tak, aby nie występowały takie błędy:
1.jeżeli przed lub po tekście [code]component="Edit1" /component[/code] wystąpi np. asd albo jakieś słowo lub cyfra to ciągle tekst ma być Edit1 (najtrudniejsze).
2.Chcę, aby to działało, nawet jeśli tekst będzie inny niż Edit1 (trochę trudne).
3.Chcę aby to działało (łatwe)
Męczę się z tym już 2 dzień.