Claudius Sailer wrote:
Der Code ist nicht gut....
Ende = Ubound(Zeilen)
for i=Ende DownTo 0
if InStr(Zeilen(i),EditField1.Text)>0 then s.Append Zeilen(i)
next
das sollte gehörig was bringen...
Meinst Du?
Ich habe extra die DownTo-Variante gewählt, weil nur einmal (intern)
UBound errechnet werden muss, danach muss RB sich ohnehin merken,
welchen Wert der Schleifenzähler hat.
Ob das permanente Auslesen aus dem Editfield gut ist oder lieber eine
variable verwendet werden sollte, müsste getestete werden.
Ich habe mal getestet:
for i=UBound(Zeilen) DownTo 0 => 3627 Ticks
bis=UBound(Zeilen)
for i=0 to bis => 3799 Ticks
s1=EditField1.text
for i=UBound(Zeilen) DownTo 0 => 79
s1=EditField1.text
bis=UBound(Zeilen)
for i=0 to bis => 78 Ticks
s1=EditField1.text
for i=0 to UBound(Zeilen) => 267 Ticks
Das Ausschlaggebende war, den Text aus dem Editfield in eine lokale
Variable zu überführen. Danke für den Tipp.
MfG, Metti.
From Wed 27 Sep 2006 21:38:56 +0200
Return-Path: <realbasic-nug dot de-bounces at lists dot realsoftware dot com>
X-Original-To: listarchive at realsoftware dot com
Delivered-To: listarchive at realsoftware dot com
Received: by xmail.realsoftware.com (Postfix, from userid 1037)
id 12A3EC83C74; Wed, 27 Sep 2006 12:39:04 -0700 (PDT)
X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on realxserve.local
X-Spam-Level:
X-Spam-Status: No, score=-1.2 required=4.5 tests=AWL autolearn=disabled
version=3.1.1
Received: from lists.realsoftware.com (lists.realsoftware.com [209.198.132.125])
by xmail.realsoftware.com (Postfix) with ESMTP id 89454C83C6D;
Wed, 27 Sep 2006 12:39:02 -0700 (PDT)
Received: from lists.realsoftware.com (localhost [127.0.0.1])
by lists.realsoftware.com (Postfix) with ESMTP
id 7DFC1152D879; Wed, 27 Sep 2006 14:39:01 -0500 (CDT)
X-Original-To: realbasic-nug dot de at lists dot realsoftware dot com
Delivered-To: realbasic-nug dot de at lists dot realsoftware dot com
Received: from smtprelay03.ispgateway.de (smtprelay03.ispgateway.de
[80.67.18.15])
by lists.realsoftware.com (Postfix) with ESMTP id 66E3A152D86D
for <realbasic-nug dot de at lists dot realsoftware dot com>;
Wed, 27 Sep 2006 14:38:58 -0500 (CDT)
Received: (qmail 15955 invoked from network); 27 Sep 2006 19:38:57 -0000
Received: from unknown (HELO [192.168.1.80]) (363246 at [84 dot 175 dot 98 dot
32])
(envelope-sender <support at monkeybreadsoftware dot de>)
by smtprelay03.ispgateway.de (qmail-ldap-1.03) with SMTP
for <realbasic-nug dot de at lists dot realsoftware dot com>;
27 Sep 2006 19:38:57 -0000
To: realbasic-nug dot de at lists dot realsoftware dot com (REALbasic NUG
German)
In-Reply-To: <3242235604 dot 129990020387 at [192 dot 168 dot 178 dot 135]>
From: support at monkeybreadsoftware dot de (Christian Schmitz)
Date: Wed, 27 Sep 2006 21:38:56 +0200
Message-ID: <1hmcerd dot 1jiq90t1jum5ogM%support at monkeybreadsoftware dot de>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Organization: Monkeybread Software Germany
X-Face: nrf3>{WQ6c&r+7 at e)"]0G60`-6ND^)I2mI%>)QGYa=9"=7jhd-g2|b3!>Al0+
Ccb%xGQshhi|g at QU2$
User-Agent: MacSOUP/D-2.7 (Mac OS X version 10.4.7)
Subject: Re: Stringsuche
X-BeenThere: realbasic-nug dot de at lists dot realsoftware dot com
X-Mailman-Version: 2.1.2
Precedence: list
Reply-To: REALbasic NUG German <realbasic-nug dot de at lists dot realsoftware dot
com>
Sender: realbasic-nug dot de-bounces at lists dot realsoftware dot com
Errors-To: realbasic-nug dot de-bounces at lists dot realsoftware dot com
Stefan Mettenbrink <S dot Metti at gmx dot de> wrote:
Ich habe ein Stringarray (gut 200.000 Strings) und ein Editfield mit dem
Suchtext.
Man könnte versuchsweise eine parallele Suche aller Strings machen.
Dafür Regex nehmen und einen großen regulrären Ausdruck damit
kompilieren.
PS: Meine RegEx Klasse hab ich gemacht, weil sie schneller ist als die
von RB :-)
Gruß
Christian
--
Around eleven thousand functions in one REALbasic plug-in.
The Monkeybread Software Realbasic Plugin v6.3. Now universal!
<http://www.monkeybreadsoftware.de/realbasic/plugins.shtml>
|