Newsgroup: it.comp.programmare.win32
Titolo: BCB4 Metodo Lenght() di AnsiString

Sto usando Builder 4 e mi serviva di sapere quanto e lunga una
AnsiString. Leggo nell'help che ce il metodo lenght, lo vado ad
implementare e scopro che....NON esiste!!!!!
Il comnpilatore non lo trova!!!
Qualcuno sa spiegarmi larcano? 
-----------------------------------------
La vita e' l'opera di un regista mediocre
e di un cattivo sceneggiatore

Qualcuno sa spiegarmi larcano? 
L'arcano? Secondo me hai invertito le ultime
due lettere.
Non "lenght" ma Length().
int len = TuaAnsiString.Length().
 
Dall'help:
----------------------------------------------------------------------------
Description
Returns the length of the AnsiString.
int __fastcall Length() const;
Returns the number of characters in this AnsiString.
----------------------------------------------------------------------------
Ciao!
Giuliano

due lettere.
E dai, concedimi un po di fiducia, no!
Ma hai provato a compilarlo?



wrote:

Io ti concedo tutto quello che vuoi (ovviamente
si fa per dire), ma tu devi capire che il codice
sottostante si compila alla prima botta senza
passare dal via. Secondo me hai fatto qualche
'typo'.
File--->New--->Console Wizard ....
'Cecca' "include visual component library", č meglio.
Compila e gioisci. :-)
Ciao!
Giuliano
#include <condefs.h>
#pragma hdrstop
#include <iostream>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
    AnsiString A = "Pippo";
    AnsiString B = "Pluto";
    std::cout << ( A + " " + B ).Length() << '\n';
    __emit__( 0xCC );
    return 0;
}

Il comnpilatore non lo trova!!!
Potresti postare il messaggio d'errore? È il linker?
È il compilatore? Ti dico questo perché mi fai venire
un dubbio: ogni tanto (ma molto raramente) bcb
emette dei riferimenti al linker errati. È un errore che
è quasi improducibile. A me è acpitato un paio
di volte ma segnalare il bug significava dare tutti
i sorgenti dei miei clienti alla Borland. Niente niente
che tu sia riuscito a ricreare il problema in due righe,
gli facciamo un "bug report" alla Borland di quelli
definitivi.
Ciao!
Giuliano

Ciao!
l'errore e semplicemente questo.
[C++ Error] Unit1.cpp(21): E2316 'Lenght' is not a member of
'AnsiString'.
il codice e questo:
//////////////////////////////////////////
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString ppp=Edit1->Text;
Edit2->Text = ppp.Lenght();
}
//---------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////
Giuro che proprio non capisco


}
Appunto!!!
Prova a scrivere:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString ppp=Edit1->Text;
Edit2->Text = ppp.Length();  // nota le ultime due lettere
}
Infatti,
AnsiString::L e n g h t()
AnsiString::L e n g t h()
come puoi notare, differiscono per la posizione di due lettere,
come già ti dissi., più di una volta ma tu non 'capissi'! :-)))
Prova a riscrivere l'evento TForm1::Button1Click facendo
un cut and paste da quello che t'ho mandato io e vedrai
che tutto si mette a funzionare a meraviglia.
Ancora: se quando arrivi a scrivere dopo il punto seguente
ppp lasci il caret fermo ed aspetti un secondo  (così per intenderci),
Edit2->Text = ppp.|
se nel dialog accedibile tramite Tools->Environment Options 
nella pagina 'Code Insight' dentro il groupbox che si chiama
'Automatic features' hai check-ato 'Code Completion' dovresti 
vedere apparire la lista delle proprietà e dei metodi apparteneti 
ad AnsiString nelle quali c'è anche Length. Ci vai sopra con le 
frecce e premi [Return] e vedrai che non ti sbagli più.
Ciao
Giuliano


Hai ragione, sono un co###onazzo
