Wie kann ich Strings, die mit 'SYS_' anfangen oder als vorletzte 2 Zeichen 'VW' haben aus einer Stringliste löschen
Announcement
Collapse
No announcement yet.
Strings, die mit 'SYS_' anfangen aus einer Stringliste löschen
Collapse
X
-
Du könntest das Probieren:<br>
<br>
<pre>
<b>label</b> SearchNext;<br>
<b>var</b> i : Integer;<br>
<b>begin</b><br>
searchNext:<br>
<b>for</b> i:=0 <b>to</b> strList.Count-1 <b>do begin</b><br>
<b>if</b> (copy(strList[i],1,4)='SYS_') <b>or</b> (copy(strList[i],length(strList<br>[i])-2,2)='VW') <b>then begin</b><br>
strList.delete(i);<br>
<b>goto</b> SearchNext;<br>
<b>end;</b><br>
<b>end;</b><br>
<br>
</pre>
Ich habe diesen Code noch nicht ausprobiert, aber so müsste es funktionieren<br>
mfg Hansjör
-
Hi Hagen,
Den Code habe ich nur schnell hingeschrieben, deiner ist hier natürlich viel schneller und genialer (herunterzählen).
Ich habe das Label nur verwendet weil der Index um 1 nach unten verschoben wird wenn man Delete verwendet. Aber so müßte es auch funktionieren (wenn man anstatt einer TSTringlist eine ZeigerListe (TList) verwendet!!), und ich denke noch ein bischen schneller wird es damit auch, weil der Index nich jedesmal neu aufgebaut werden muß:
for i:=0 to stringlist.count-1 do<br>
if AnsiStrLIComp(PCHar(STringlist[i]^),'SYS_',4)=0 then<br>
StringList[i]:=nil;<br>
STringList.Pack;<br>
mfg Hansjörg ;-
Comment
Comment