Solved

Word Count Function

Posted on 1998-03-26
9
150 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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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
 
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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…

726 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