Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Indirekt: Strings vergleichen (inside more) (https://www.delphipraxis.net/8107-indirekt-strings-vergleichen-inside-more.html)

Hansa 30. Aug 2003 20:34

Re: Indirekt: Strings vergleichen (inside more)
 
das müßte jetzt wirklich völlig ausreichen. pos erkläre ich nicht auch noch.

fkerber 30. Aug 2003 20:44

Re: Indirekt: Strings vergleichen (inside more)
 
Hi!

ich hab das mit pos hingekriegt!

Danke für die größtenteils freundliche Hilfe!
Habe damit dann alles in den Griff gekriegt!


Danke! :)

Ciao fkerber

Minz 30. Aug 2003 22:13

Re: Indirekt: Strings vergleichen (inside more)
 
@MSCH

Das Array/die Liste ist bereits sortiert, da alphabetisch aus dem Wörterbuch übernommen :mrgreen:

@fkerber

Wie lange dauert denn das Einlesen der Datei in dein Array ungefähr?

Ob du ein Array nehmen sollst musst du selber entscheiden :mrgreen:
Die Geschwindigkeit beim Wörter im Array suchen, kannst du durch ein zweites Array erhöhen. In diesem zweiten Array speicherst du zu den Anfangsbuchstaben die Positionen im ersten Array, an denen die Wörter mit den jeweiligen Buchstaben beginnen und enden.

So brauchst du dann immer nur einen Bruchteil des Arrays durchsuchen!

Spart enorm Zeit wenn du statt 80.000 Wörtern nur noch 10.000 hast.

fkerber 30. Aug 2003 22:26

Re: Indirekt: Strings vergleichen (inside more)
 
Hi!

Das Einlesen dauert im Schnitt ca. 6 Sekunden (Rechner hat allerdings auch 2,4 GHz und 1024 mb Ram).

Mit dem 2. Array, das iss ne super idee!
Werd ich morgen mal probieren!

Ciao fkerber

Minz 31. Aug 2003 10:44

Re: Indirekt: Strings vergleichen (inside more)
 
Achso und in Richtung Optimierung wäre es gut, wenn du die Wörter tatsächlich von ihren Anhängseln trennst. Dann ersparst du dir beim durchsuchen die Pos-Function und kannst direkt vergleichen.

Code:
function getWord(s:string):string;
var i:byte;
     zeichen: string[1];
     wort: string;
begin
   for i:=0 to length(s)-1 do begin
      zeichen:=s[i];
      if zeichen<>'\' then wort:=wort+zeichen
      else result:=wort;
   end;
   result:=wort;
end;
Not tested!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz