Solved

Word Count Function

Posted on 1998-03-26
151 Views
Hi,
I need to get / write a word counting function for a TMemo object. Anyone got any code or ideas?
Cheers.
0
Question by:PiersBull
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 6
• 3

LVL 4

Accepted Solution

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

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

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

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

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

ID: 1360934
Thanx

0

Author Comment

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

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

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

Question has a verified solution.

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

A lot of questions regard threads in Delphi. Â  One of the more specific questions is how to show progress of the thread. Â  Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to theâ€¦
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â€¦
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this vâ€¦
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediafâ€¦
Suggested Courses
Course of the Month2 days, 15 hours left to enroll