String Methods (System)

Intrebari despre limbajul C++/CLI (si versiunile mai vechi MC++), applicatii mixed-mode sau probleme specifice .NET legate de C++.
Post Reply
User avatar
curiosul
Junior
Junior
Posts: 46
Joined: 18 Aug 2010, 20:20
Judet: Iaşi
Contact:

String Methods (System)

Post by curiosul » 25 Jan 2013, 14:14

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...


Cea mai buna batalie este cea castigata fara lupta.

Viorel
Microsoft MVP
Microsoft MVP
Posts: 286
Joined: 13 Jul 2007, 12:26

Re: String Methods (System)

Post by Viorel » 25 Jan 2013, 14:30

Nu e clar ce este bf. Încearcă asta sau oferă detalii:

Code: Select all

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

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: String Methods (System)

Post by Ovidiu Cucu » 25 Jan 2013, 14:42

[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. ;)

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2343
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: String Methods (System)

Post by Marius Bancila » 25 Jan 2013, 16:58

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.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
curiosul
Junior
Junior
Posts: 46
Joined: 18 Aug 2010, 20:20
Judet: Iaşi
Contact:

Re: String Methods (System)

Post by curiosul » 25 Jan 2013, 20:46

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.
Cea mai buna batalie este cea castigata fara lupta.

Viorel
Microsoft MVP
Microsoft MVP
Posts: 286
Joined: 13 Jul 2007, 12:26

Re: String Methods (System)

Post by Viorel » 25 Jan 2013, 22:16

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.

Post Reply