Toon posts:

[C++] Letters/Cijfers tellen

Pagina: 1
Acties:
  • 133 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoe kan je in C++ Builder 5 doet datie het aantal letters
telt van wat je typt.

Met het aantal zinnen weet k het wel
code:
1
2
3
4
5
void __fastcall TForm1::Button5Click(TObject *Sender)

{
 Label1->Caption = (RichEdit1->Lines->Count);
}


Zoiets...maar dan telt hij dus de zinnen...
Misschien is het iets in de richting met Capacity

kheb al uren bezig geweest maar niet veel resultaat :(

  • hiostu
  • Registratie: Juli 2000
  • Laatst online: 05-05 13:13
kun je niet gewoon GetSize van de string doen of zo?

Verwijderd

Topicstarter
Dat zit onder het gedeelte van Font...
dat is niet wat ik bedoel

  • hiostu
  • Registratie: Juli 2000
  • Laatst online: 05-05 13:13
je moet gewoon een string aanmaken:

code:
1
2
CString a = RichEdit1.GetText();
int grootte = a.GetSize();


Syntax zal wel niet helemaal kloppen, maar misschien begrijp je wat ik bedoel. Als de methode GetSize() niet gestaat voor CString moet je even zoeken in msdn welke methode de grootte van een string terug geeft.

[ Voor 25% gewijzigd door hiostu op 15-10-2003 09:49 ]


Verwijderd

doe iets als:

C++:
1
2
3
4
5
string blaat;
for(int i=0; i < richedit1.lines.count; i++){
 blaat = blaat + richedit.lines[i];
}
label2->Caption = blaat.length();


zoeits?? Je pleurt alle regels in een string en bepaald daar de lengte van. Daarna print je die lengte in en label!

[ Voor 3% gewijzigd door Verwijderd op 15-10-2003 09:48 ]


Verwijderd

Topicstarter
Ja dat komt wel in de buurt geloof k..

C++:
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button5Click(TObject *Sender)
{
String blaat;

for(int i=0; i < RichEdit1->Lines->Count; i++){
 blaat = blaat + RichEdit1->Lines[i];
 }

 Label1->Caption = blaat.Length();
}


dan begint hij te zeuren over die + operator
'Operator+' Not implented in type 'AnsiString' for arguments of type 'TStrings' :?

  • hiostu
  • Registratie: Juli 2000
  • Laatst online: 05-05 13:13
je kunt met een string volgens mij niet concateneren, je moet dan of CString gebruiken of de functie append geloof ik. Ik denk trouwens dat je CString niet kan gebruiken omdat dat een mfc iets is

[ Voor 25% gewijzigd door hiostu op 15-10-2003 10:06 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 15 October 2003 @ 10:03:
dan begint hij te zeuren over die + operator
'Operator+' Not implented in type 'AnsiString' for arguments of type 'TStrings' :?
Anders kijk je ff in de handleiding :/ Hint: F1 indrukken op de Lines property.

Uit het blote hoofd:
C++:
1
 blaat = blaat + RichEdit1->Lines->Strings[i];

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

hiostu schreef op 15 oktober 2003 @ 10:06:
je kunt met een string volgens mij niet concateneren, je moet dan of CString gebruiken of de functie append geloof ik. Ik denk trouwens dat je CString niet kan gebruiken omdat dat een mfc iets is
In BCB heet ie AnsiString, met een typedef naar String, en werkt concatenatie perfect met de + en += operators hoor :)

Professionele website nodig?


Verwijderd

Topicstarter
Woo hij doet het :D

tnx cyrry684, das een zinvol antwoord :P
en de rest ook...

[ Voor 14% gewijzigd door Verwijderd op 15-10-2003 10:28 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

hiostu schreef op 15 oktober 2003 @ 10:06:
je kunt met een string volgens mij niet concateneren, je moet dan of CString gebruiken of de functie append geloof ik. Ik denk trouwens dat je CString niet kan gebruiken omdat dat een mfc iets is
std::string is gewoon een ANSI C++ klasse die je kunt concateneren

Het is trouwens wel onzin om eerst de strings te concateneren, om vervolgens de lengte van het totaal op te vragen. Vraag dan de lengte per string op, en tel alle lengtes bij elkaar op. Stuk efficienter en ook niet zo memory-consuming

TS: was dat trouwens lomp en nutteloos genoeg? Ik moet wel aan je volwachtingen voldoen natuurlijk :Z

[ Voor 8% gewijzigd door .oisyn op 16-10-2003 15:41 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Dit is toch echt simpel:
code:
1
ShowMessage(IntToStr(RichEdit1->Text.Length()-((RichEdit1->Lines->Count-1)*2)));

Ik laat niet de carriage returns meetellen anders krijg je imho een vertekend beeld.
Pagina: 1