Solved

Word Count Function

Posted on 1998-03-26
9
146 Views
Last Modified: 2010-04-06
Hi,
     I need to get / write a word counting function for a TMemo object. Anyone got any code or ideas?
Cheers.
0
Comment
Question by:PiersBull
  • 6
  • 3
9 Comments
 
LVL 4

Accepted Solution

by:
d003303 earned 10 total points
ID: 1360929
var TextBuf   : PChar;
    Index,
    WordCount : Integer;
begin
  Memo1.SelectAll;
  GetMem(TextBuf, Memo1.SelLength + 2);
  try
    Memo1.GetSelTextBuf(TextBuf, Memo1.SelLength);
    TextBuf[Memo1.SelLength+ 1] := #0;
    TextBuf[Memo1.SelLength] := #32;
    Index := 0;
    WordCount := 0;
    while Index < StrLen(TextBuf) do
     begin
       if (Buffer[Index] = #32) and (Buffer[Index + 1] <> #32)
        then Inc(WordCount);
       Inc(Index);
     end;
  finally
    FreeMem(TextBuf, Memo1.SelLength + 2);
  end;
end;

Slash/d003303
0
 

Author Comment

by:PiersBull
ID: 1360930
Hi amigo,
   I've tried the code, but it gives me an unknown identifier at Buffer[index]. Any ideas?
Cheers.
0
 
LVL 4

Expert Comment

by:d003303
ID: 1360931
oops, a little typo. replace the line
if (Buffer[Index] = #32) and (Buffer[Index + 1] <> #32)
with
if (TextBuf[Index] = #32) and (TextBuf[Index + 1] <> #32)

Slash/d003303
0
 

Author Comment

by:PiersBull
ID: 1360932
Hi again,

    Maybe I'm being thick, but how do I output the result in a messagebox? I've tried doing an IntToStr(WordCount), but the MessageBox command gives me a type mismatch. How do I output the result?
Points upa bit.
Cheers.

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 4

Expert Comment

by:d003303
ID: 1360933
Application.MessageBox uses PChar strings. Declare a buffer string and typecast. e.g.
var MsgStr : string
begin
  MsgStr := Format('I have found %s words in this text', [WordCount]);
  Application.MessageBox(PChar(MsgStr), 'Note', mb_ok);
end;

Slash/d003303
0
 

Author Comment

by:PiersBull
ID: 1360934
Thanx

0
 

Author Comment

by:PiersBull
ID: 1360935
Hi amigo,
    I've tried the code, but it gives me an unknown identifier at Buffer[index]. Any ideas?
Cheers.

0
 

Author Comment

by:PiersBull
ID: 1360936
Hi amigo,
    I've tried the code, but it gives me an unknown identifier at Buffer[index]. Any ideas?
Cheers.

0
 

Author Comment

by:PiersBull
ID: 1360937
Hi amigo,
   I've tried the code, but it gives me an unknown identifier at Buffer[index]. Any ideas?
Cheers.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now