Milyen egyszerűbb megoldással működhetne ez a program, mi az, amit elegánsabban lehetne megoldani? (Pascal, string-kezelés)
Megadott karaktertől megadott karakterig szeretnék törölni egy string-ből mindent.
Ez az, ami a "szokásos módon" nem akar sikerülni, úgy, ahogy működnie kellene, ellenben más módon, sikerült.
Itt két negoldás, másodikat én találtam ki, kénytelen vagyok megszámolni a darabszámot, mert egyébként nem hajlandó működni...
Miért nem?
{$h+}
uses crt;
var
s : string;
i, j, poz, poz2 : word;
begin
s := 'próba valami () ez is csak próba () mint az előbb ()';
repeat
poz := pos('p',s);
poz2 := pos(')',s);
delete(s,poz, poz2-poz);
until (poz = 0);
WriteLn(s);
s:='';
ReadLn;
for i:=1 to 888 do
s:=s+'abteszt(teszt)';
repeat
poz:=pos( 'ab', s);
poz2 := pos(')',s);
j := 0;
for i := poz to poz2 do
inc(j);
delete(s,poz,j);
WriteLn(poz);
until poz = 0;
end.
77%-os válaszoló: Nagyon köszönöm a belinkelt kódot, ezzel a függvénnyel nagyon jó, ötletes.
Végülis a saját kódomnál is meglett a megoldás, csak minimális elírás volt és működött volna az is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!