Page 1 of 1

String Methods (System)

Posted: 25 Jan 2013, 14:14
by curiosul
Am niste nelamuriri in legatura cu String Methods, cele oferite de Microsoft.
Nu inteleg, astea sunt cele native pentru programe VC++ .Net CLI? Ca tot incerc sa le folosesc dar ba imi zice "identifier not found", ba nu gasesc ceea ce as vrea. Un exemplu de functie pe care nu o inteleg este CopyTo() si in schimb primesc ->CopyTo' must point to class/struct/union/generic type. Codul arata cam asa:

Code: Select all

String ^systemstring = gcnew String(bf);
array<Char>^destination;
bf->CopyTo(0,destination,0,3);
PS: Ca sugestie pentru site, nu atasati un chat forumului? Adica ar fi mai usor sa intreb unele prostioare acolo si sa nu fac "mizerie" printre threaduri.
Sau daca nu poate stiti voi undeva alte chaturi unde frecventeaza programatori...

Re: String Methods (System)

Posted: 25 Jan 2013, 14:30
by Viorel
Nu e clar ce este bf. Încearcă asta sau oferă detalii:

Code: Select all

array<Char> ^ destination = systemstring->ToCharArray();

Re: String Methods (System)

Posted: 25 Jan 2013, 14:42
by Ovidiu Cucu
[off-topic]
1. Pune te rog de-acum inainte subiectele care tin de C++/CLI in sectiunea "Limbajul C++/CLI (Managed C++)"

2.
curiosul wrote: PS: Ca sugestie pentru site, nu atasati un chat forumului? Adica ar fi mai usor sa intreb unele prostioare acolo si sa nu fac "mizerie" printre threaduri.
Sau daca nu poate stiti voi undeva alte chaturi unde frecventeaza programatori...
Deocamdata, CODEXPERT este forum de discutii si nu call center. Adica, nu avem pe nimeni agajat sa raspunda la telefon sau sa stea pe chat. ;)

Re: String Methods (System)

Posted: 25 Jan 2013, 16:58
by Marius Bancila
Hai sa ne intelegem, ori nativ (adica C++) ori managed (adica C++/CLI). In C++ ai std::string, in MFC ai CString, iar in C++/CLI ai System::String. Poti converti in CString intr-un System::String asa:

Code: Select all

CString snativ = "codexpert";
String^ smanaged = gcnew String(snativ);
Si invers:

Code: Select all

String^ smanaged = gcnew String("codexpert");
CString snativ(smanaged);
Daca vrei mai multe informatii, trebuie sa ne dai mai multe explicatii pentru ce vrei sa faci.

Re: String Methods (System)

Posted: 25 Jan 2013, 20:46
by curiosul
Codul mai complet arata cam asa:

Code: Select all

BOOL bRet = InternetReadFile(hSite, lpBuffer, dwBytesToRead, &dwBytesRead);
	if(! bRet)
	{
		InternetCloseHandle(hSite);
		InternetCloseHandle(hSession);
								
	 }

         if(dwBytesRead < dwBytesToRead)
		lpBuffer[dwBytesRead] = 0;
	else
		lpBuffer[dwBytesToRead - 1] = 0;

        String ^systemstring = gcnew String(lpBuffer);
							 
	array<Char>^destination;
	lpBuffer->CopyTo(0,destination,0,3);

Vreau sa preiau anumite date de pe o pagina. lpBuffer este sursa.
Eu vreau sa preiai primele 2 caractere sau operatii de genul.

Cum ar fi mai corect sa fac?

@Ovidiu Cucu: Imi cer scuze, nici nu am vazut ca au fost mutate la C++/CLI.

Re: String Methods (System)

Posted: 25 Jan 2013, 22:16
by Viorel
Caracterele pot fi accesate direct: lpBuffer[0] și lpBuffer[1]. Sau așa:

Code: Select all

String ^ primele_doua = systemstring->Substring(0, 2);
array<Char> ^ destination = primele_doua->ToCharArray();
Amestecarea lui C++ nativ și C++/CLR s-ar putea evita. Pentru stringuri native se poate folosi std::string sau CString.
Pentru lucrul cu Internetul folosind mai mult .NET se poate încerca clasa WebClient.