AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche effizienter machen

Ein Thema von Zioone · begonnen am 19. Sep 2008 · letzter Beitrag vom 23. Sep 2008
Antwort Antwort
Seite 3 von 4     123 4      
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#21

Re: Suche effizienter machen

  Alt 23. Sep 2008, 11:27
Na, der Vorschlag von "nahpets" mit der Zusammenfassung ist nur sinnvoll, wenn diese Prüfung innerhalb der Schleife immer wieder durchlaufen würde. Nun steht sie aber vor der Schleife. dann ist das nicht mehr notwendig. MAn sollte nicht auf =true prüfen. Begründungen gibt's hier im Forum an verscheidener Stelle.

Muss zugeben, das ich deinen Schnipsel immer weniger verstehe. Du hast 3 Edits, eine Stringliste und ein Memo. Die Worte, die in den Edits und der Stringliste enthalten sind, sollen im Memo fett markiert werden? Du vergleichst Edits/Liste mit LowerCase, dennoch dürfen die Listeneinträge nicht in LowerCase verändert werden.

Sorry, da blick ich nicht durch...

// edit: Ja, Millisekunden. Schau mal in die Win-API Hilfe.
Ralph
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#22

Re: Suche effizienter machen

  Alt 23. Sep 2008, 11:27
Ja es sind Millisekunden.

Wenn du jede Version nur einmal durchführst ist das nicht wirklich signifikant.

Delphi-Quellcode:
const C_COUNT = 100;
var LBegin,
    LEnd, i: integer;

    LTime: String;
begin
  LBegin := GetTickCount();
  try
    for i := 0 to C_COUNT do
    begin
      HierMacheIchDieArbeit();
    end;
  finally
    LEnd := GetTickCount;
   
    EinLabel.Caption := IntToStr(LEnd - LBegin);
   
  end;
end;
So wird die Arbeit jetzt 100 mal gemacht.
Umso öfter es möglich ist in annehmbarer Zeit umso öfter solltest du die Schleife laufen lassen.
Wichtig wäre auch, daß du das Ganze startest und bis zum Ende den Rechner in Ruhe lässt.
Aktionen nebenbei kosten Prozesserzeit.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Zioone

Registriert seit: 3. Sep 2008
49 Beiträge
 
Delphi 7 Professional
 
#23

Re: Suche effizienter machen

  Alt 23. Sep 2008, 11:37
Zitat von taaktaak:
Muss zugeben, das ich deinen Schnipsel immer weniger verstehe. Du hast 3 Edits, eine Stringliste und ein Memo. Die Worte, die in den Edits und der Stringliste enthalten sind, sollen im Edit fett markiert werden? Du vergleichst Edits/Liste mit LowerCase, dennoch dürfen die Listeneinträge nicht in LowerCase verändert werden.
ich habe 2 Stringlisten und ein Richedit, und die 3texte kommen aus einer inidatei die ich vorher über naja Farbkomponente einlese und in der ini datei speicher.
ich speicher den gesamten text in die Stringliste, wenn auf Suchbutton geklickt wurde, dann noch in die andere Stringliste, um mit der danach mit einer suche dort zu suchen dort ändert sich der Text, logischerweise. Aber der orginaltext darf sich ja nicht ändern.
Jedenfalls wird dann bei der suche der komplette text klein angezeigt.
~.~ Text doof geschrieben aber der hat damit ja auch eigentlich nichts zutun.

EDIT: um genau zu sein sind es 3 Stringlisten
Orignaltext
Zwischenspeicher
Suchergebnis

@Tyrael Y.
kanns ja dann noch mal machen, aber ob nu 1 sekunden hin oder her. Gibt es nichts was paar Sek mehr bringen kann?
Christine
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#24

Re: Suche effizienter machen

  Alt 23. Sep 2008, 11:41
Zitat von Zioone:
@Tyrael Y.
kanns ja dann noch mal machen, aber ob nu 1 sekunden hin oder her. Gibt es nichts was paar Sek mehr bringen kann?
Davon wirst du nix haben, da die Unterschiede dann im wahrscheinlich im Zehntelsekundenbereich liegen werden.
Machst du es mit einer Schleife und lässt es sehr oft laufen, werden sich die Unterschiede aufaddieren und du wirst Unterschiede von mehreren Sekunden/Minuten sehen, je nachdem wie lang die Schleife läuft.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#25

Re: Suche effizienter machen

  Alt 23. Sep 2008, 11:58
Bin heute wirklich etwas begriffsstutzig:
Du hast also einen Text in einem RichEdit und willst in diesem Text 3 Worte unter Berücksichtigung der Groß-/Kleinschreiben suchen und, wenn gefunden, fett markieren?
Ralph
  Mit Zitat antworten Zitat
Zioone

Registriert seit: 3. Sep 2008
49 Beiträge
 
Delphi 7 Professional
 
#26

Re: Suche effizienter machen

  Alt 23. Sep 2008, 12:03
taaktaak:
das doch total irrelevant dafür ^^'. Ich lade den kompletten inhalt in FSelect rein, bzw auch in mein Richedit, dort möchte ich egal wegen groß/kleinschreibung, die wörter markieren.

Dann gibt es noch eine Suche, die dann den kompletten text klein ausgibt, wenn ich das dort über die schleife klein mache.

@Tyrael Y.
ja, das mein ich ja das die unterschiede nur im zentelbereich sind und mir eh nichts groß bringen. Nur versteh nicht, was ich machen kann...
Christine
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#27

Re: Suche effizienter machen

  Alt 23. Sep 2008, 12:06
Ich denke nicht, ,dass das Verständnis deines Code irrelevant ist

Also du hast einen Text? Und den lädst du in eine Stringliste und ein Richedit? Und dann hast du 3 Wörter (können das noch mehr werden?) die du hervorheben möchtest??
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#28

Re: Suche effizienter machen

  Alt 23. Sep 2008, 12:10
Ich halte eine exakte Aufgabendefinition keineswegs für irrelevant, es ist vielmehr eine unabdingbare Voraussetzung, dich bei der Problemlösung unterstützen zu können. Aus dem Codeschnipsel und dem bisher geschriebenen gehen die eigentlichen Anforderungen nicht zweifelsfrei hervor.

Aber vielleicht sind andere Forumsmitglieder ja intuitiver.
Ich geb's auf...
Ralph
  Mit Zitat antworten Zitat
Zioone

Registriert seit: 3. Sep 2008
49 Beiträge
 
Delphi 7 Professional
 
#29

Re: Suche effizienter machen

  Alt 23. Sep 2008, 12:16
ja, aber die suche hat ja primär nichts mit dem textmakieren zutun.
also:
-datei öffnen
-text in Stringlist laden und Richedit
-in Prozedur Text markieren gehen
-suchwörter aus ini datei laden (zur zeit höchstens 3 wörter, vllt später mal mehr dynamisch aber erst mal soll das reichen)
-suche + markieren starten wie schon quelltext hier geschrieben
-ende fürs öffnen
Christine
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#30

Re: Suche effizienter machen

  Alt 23. Sep 2008, 12:34
Gut, ich skizziere mal, wie ich das machen würde:

Text aus Datei in StringList & Richedit laden: Hast du offenbar schon.

StringList mit Wörtern laden.
Delphi-Quellcode:
uses strutils;

var
  i, position: integer;
Wörter: TStringlist;
text: String;

Richedit.Lines.Beginupdate();
for i = 0 to Wörter.Count do
begin
  position = pos(Wörter[i], text);
  while(position != 0)
  begin
    // Highlighting mit positioin und length(wörter[i])
    position = posex(Wörter[i], text, position);
  end;
end;
Richedit.Lines.EndUpdate();
Der Cde geht also nicht den Text durch, um zu ürüfen, ob da wörter sind, sondern geht die wörter durch und prüft ob sie im Text sind.

Wg. Case-Sensitiveness: da gibt es evtl. noch andere pos-Funktionen, bei denen man das einstellen kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz