Seite 1 von 1

Re: Rekursives Suchen und Löschen

Verfasst: Do, 15.11.2007 08:25
von Toxitom
Hey M_goes_OOo,

hmm, einfacher wäre es, du postest deinen vorhandenen Code - da könnte man dir direkte Tipps geben.

Natürlich kannst du die Suche auch auf mehrere Elemete direkt anwenden - wobei es fraglich ist, ob nicht der wiederholte Schleifendurchlauf effektiver wäre.
Aber egal:
Wenn du eine Zeile läschst (ich denke, du meinst auch "Zeilen"), so hast du ja vorher eine Abfragebedingung. Die kannst du jederzeit durch "AND" oder "OR" erweitern, also in der Form:

Code: Alles auswählen

sInhalt = oZelle.string
if (sInhalt = "Müller") OR (sInhalt = "Meier") OR (sInhalt = "Fischer") then
  'Lösche Zeile
Ich würde aber dennoch nur eine Routine und Parameter abfragen, dafür dann alle Suchkriterein in einen Array packen und den Array nacheinander abarbeiten...
Zum zweiten Thema:
Da gibt es viele Varainten - die einfachste in Basic mit "inStr()":

Code: Alles auswählen

if inStr(sInhalt, "müller", 1) then
  REM Zeile löschen
Instr() liefert die Position im String, ab der der Suchstring beginnt. Liefert "0" (Null), wenn der Suchstring nicht enthalten ist. Die 1 als Parameter verwendet eine reine Textsuche - ohne berücksichtigung von Groß- und Kleinschreibung.

Gruss
Thomas

Re: Rekursives Suchen und Löschen

Verfasst: Fr, 16.11.2007 09:20
von M_goes_OOo
Hallo Thomas,

danke für die Antwort. Die Adressliste war nur ein Beispiel. Konkret geht's um Tabellen, in denen mehrere Hundert Musiktitel inklusive Angabe des Trägermediums (CD, CD-Maxi, LP bis hin zur MusiCassette) stehen. Insgesamt maximal 39 verschiedene Tonträgerarten. Ich brauche von denen aber nur maximal fünf.

Mein Code zum Löschen <b>eines</b> Datenträgers:

Code: Alles auswählen

For n = letzte_Zeile -1 to 0 step -1
oInhalt = oSheet.getCellByPosition(4,n).string
	if oInhalt = "SACD" then 
		oSheet.getRows().removeByIndex(n, 1)
	end if
Next
Diesen Code 34-mal nacheinander durchhecheln zu lassen, erscheint mir wenig performant , ebenso 34 OR-Verknüpfungen zu machen. :shock:

Das mit dem Array hört sich gut an. Werde mich mal auf die Suche machen.

Gruß,
Marcus

Re: Rekursives Suchen und Löschen

Verfasst: Fr, 16.11.2007 11:53
von ush189
Statt 34 Verknüpfungen mit dem IF könntest du auch 5 Verknüpfungen mit IF NOT machen.

Re: Rekursives Suchen und Löschen

Verfasst: Fr, 16.11.2007 13:34
von M_goes_OOo
:lol: Manchmal sieht man den Wald vor lauter Bäumen nicht ... :lol: