AGB  ·  Datenschutz  ·  Impressum  







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

Wörter zählen, optmimieren?

Ein Thema von Baumel · begonnen am 20. Aug 2003 · letzter Beitrag vom 20. Okt 2004
Antwort Antwort
Seite 2 von 2     12   
notErnie
(Gast)

n/a Beiträge
 
#11

Re: Wörter zählen, optmimieren?

  Alt 19. Okt 2004, 23:42
Bei den Trennzeichen für's "Wörter zählen" sollte man vielleicht auch noch Frage- und Ausrufungszeichen (?!) berücksichtigen

Nicht jeder will nur die Wörter im Sourcecode zählen

Bert
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#12

Re: Wörter zählen, optmimieren?

  Alt 20. Okt 2004, 00:31
der ansatz die trennzeichen zu zählen ist ja ganz interessant, aber es gibt alle möglichen arten von trennungen, manchmal^würden^menschen sowas sogar zusammenschreiben, was macht man da? sich mal meinen vorschlag anhören

wörter bilden sich im regelfall aus buchstaben, dafür sind sie bekannt, also warum nicht sobald ein wort anfängt den counter erhöhen und bis zum ende des wortes weitergehen? konkret sähe das folgendermaßen aus...
Delphi-Quellcode:
function WordCount(const S: string): Integer;
const ValidChars = ['a'..'z','A'..'Z','ä','ö','ü','Ä','Ö','Ü','ß'];
var P: PChar;
begin
  Result := 0;
  if S = 'then Exit;
  P := Pointer(S);
  repeat
    if P^ in ValidChars then begin
      while (P^ in ValidChars) and (P^ <> #0) do
        Inc(P);
      Inc(Result);
    end else Inc(P);
  until P^ = #0;
end;
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
notErnie
(Gast)

n/a Beiträge
 
#13

Re: Wörter zählen, optmimieren?

  Alt 20. Okt 2004, 01:39
@Nothine:

Den Ansatz hatten wir (fast) schon mal weiter oben - ohne die Pointer.

Aus Deiner Idee kann noch was werden, wenn Du Deine "ValidChars" noch um Zahlen oder z.B. italienische, spanische oder türkische Buchstaben erweiterst...

Aber so im Großen und Ganzen bevorzuge ich doch eher das Parsen nach Trennzeichen

Tschulligung: "Wörter zählen" ist (und bleibt) leider ein Scheiß-Thema, das möglicherweise zu lösen wäre, wenn ...

...wenn es nur eine Sprache gäbe...

Komplett naive (realitätsfremde) Grüße daher/dazu von
Bert
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#14

Re: Wörter zählen, optmimieren?

  Alt 20. Okt 2004, 08:52
Zitat:
bei jeder Art Stringliste, eben auch RichEdit.Lines, wird die Eigenschaft Text bei jedem Lesezugriff auf diese Eigenschaft aus den gesamten Strings zusammengesetzt, und bei jedem Schreibzugriff werden die Zeilen anschliessend neu aufgebaut.
Das ist das, was so auf die Performance drückt.
Das stimmt für Delphis TStringList Objecte, aber eben nicht für RichtEdits. RichEdits verwalten intern den kompletten Textin einem linearen Speicher. Bei jedem Zugriff auf die Property .Text wird intern nun vom Windows API RichEdit Control der Text angefordert. Nun, das Windows API läuft bekannt bei Fensterhandles immer über Messages. D.h. .GetText muß mie SendMessage() arbeiten, intern wird dann der Text-Speicher in den vorher allozierten String kopiert. Pro Zugriff auf die Property .Text entstehen also 2 SendMessages (1 um die Größe des Textes zu holen, 1 um den Text zu holen) + eine Speicherallozierung eines LongStrings mit Setlength() und eine Speicherkopierung. Sollte der Text also 1Mb betragen, wird jedesmal beim Aufruf von .Text[I] ein neuer Speicherbereich mit 1Mb Daten kopiert.
Das das langsam sein muß ist ja wohl klar.

Gruß Hagen

PS: Variablen sind die Freunde des Programmierers
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:43 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