[ maximus_1 @ 27.09.2005. 23:08 ] @
Kako konvertirati iz jednih u druge varijable u Borland C++?

Npr: Kako iz AnsiString ili String u Char ili Char*
Kako iz int u String ili Char...
[ zokio @ 28.09.2005. 00:45 ] @
Za to postoji niz gotovih funkcija koje mozes iskoristit;

a to su: itoa, atoi, atof ......
[ _VampiR_ @ 28.09.2005. 08:10 ] @
AnsiString ne mozes konvertovati uz pomoc atoi, itoa itd. Za to imas funkcije StrToInt( AnsiString string ), IntToStr, StrToLong, LongToStr itd.
[ X Files @ 28.09.2005. 12:35 ] @
Kada hoces da upotrebis TEKST iz AnsiString-a u funkciji gde se trazi char*,
onda to ide otprilike ovako:

AnsiString Text = "neki tekst";

// prototip
void funkcija( char *Arg );

// poziv
funkcija( Text.c_str() );

Dakle samo upises .c_str().



[ maximus_1 @ 29.09.2005. 10:24 ] @
Citat:
X Files: Kada hoces da upotrebis TEKST iz AnsiString-a u funkciji gde se trazi char*,
onda to ide otprilike ovako:

AnsiString Text = "neki tekst";

// prototip
void funkcija( char *Arg );

// poziv
funkcija( Text.c_str() );

Dakle samo upises .c_str().


Ajde molim te objasni mi još malo ovaj način pretvorbe jer mi treba kod ovog koda:
Code:


        AnsiString x;

        if(SelectDirectory("Copy picture to...", "", x))
        {
                CopyFile((FileName), x + ExtractFileName(FileName), true);
        }


...gdje mi je FileName tipa AnsiString i stalno mi javlja da ga ne može pretvoriti u Char*.

Kako bi vi riješili ovaj problem.
[ X Files @ 29.09.2005. 14:39 ] @
Iz MSDN-a:

BOOL CopyFile(LPCTSTR lpszExistingFile, LPCTSTR lpszNewFile, BOOL fFailIfExists)

Dakle tebi treba da fajl koji je tipa AnsiString pretvoris u ono sto odgovara pozivu
CopyFile, a to je char*.

To znaci, NE MOZE:

Code:

AnsiString Fajl1 = "C:\\fajl.txt";
AnsiString Fajl2 = "D:\\fajl.txt";

::CopyFile(Fajl1, Fajl2, true)


Nego mora:

Code:

AnsiString Fajl1 = "C:\\fajl.txt";
AnsiString Fajl2 = "D:\\fajl.txt";

::CopyFile(Fajl1.c_str(), Fajl2.c_str(), true)


... dakle, samo na AnsiString dodas sufiks .c_str()