Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Cum pastrez/retin/memorez date?
Last Updated: Jan 06 2012 00:33, Started by
rares_12
, Jan 05 2012 21:20
·
0
#1
Posted 05 January 2012 - 21:20
Salutare!
De azi dimineata am inceput sa lucrez la un proiect in Visual C++ 2010 Express. Este prima mea incercare de a face un proiect de acest fel. Programul face niste calcule simple asupra unor date de intrare ( sau cel putin asa ar trebui ). In C++ l-am facut si ruleaza foarte bine, insa cand vine vorba sa-l fac in visual, nu mai e asa simplu. Tot ce vreau sa fac pentru inceput, este sa introduc, pe rand, intr-o casuta text un numar n de valori (n este precizat in prealabil intr-o casuta text separata), dupa care apasand enter dupa fiecare in parte, programul le preia. Vreau ca aceste numere sa fie retinute intr-un fisier text, de unde apoi ar putea fi citite si eventual prelucrate in continuare. A doua varianta, care este aproape identica celei anterioare, ar fi ca in loc sa apas enter dupa fiecare introducere a unei valori, sa introduc direct toate valorile separate prin spatiu, dupa care apas un singur enter pentru fiecare. ( varianta aceasta fiind de preferat ) Din cate am vazut si am incercat, posibilitatea folosirii vectorilor nu exista...Ar fi fost foarte simplu. As fi memorat datele in vectorul de lungime de la 0 la n-1 folosindu-ma de instructiunea FOR dupa care as fi efectuat operatiile necesare. Dar dupa cum se vede Visual C++ nu se lasa asa usor. Am citit undeva ca ar merge totusi folosirea unui vector declarat global in fisierul .cpp al Visual C++ si apoi declarat extern in fisierul Form.h, dar si varianta aceasta a esuat ( sau poate am gresit eu cu ceva, dar nu vad cu ce ). As dori sa imi spuneti va rog doar ce metoda sa folosesc pentru a memora acele date pe care le introduc. Fie ca le introduc intr-un fisier text, fie ca le memorez intr-un vector. Va multumesc anticipat! |
#2
Posted 05 January 2012 - 21:25
Cum sa nu existe posibilitatea folosirii vectorilor? Mai inca o gramada de clase in plus din partea .NET pentru ei.
Edited by dani.user, 05 January 2012 - 21:26. |
#3
Posted 05 January 2012 - 21:34
Am cautat ore in sir astazi si nu prea am gasit nimic... Poate nu am stiut ce sa caut, poate nu am cautat bine, orice este posibil.
Care este sintaxa folosirii vectorilor de exemplu? ( intreb de ei pentru ca mi se pare cea mai simpla metoda ) La fel ca in C++ nu cred ca este...pentru ca am incercat. |
#4
Posted 05 January 2012 - 21:50
Eu nu pricep ce legatura are VC++ cu VB (unde ai postat) !
Iar C++ e acelasi indiferent cine a produs IDE-ul si compilatorul. Edited by neagu_laurentiu, 05 January 2012 - 21:52. |
#5
Posted 05 January 2012 - 22:00
Stiu ca C++ e acelasi oriunde, eu am spus ca poate am omis eu ceva in a scrie corect codul.
In Visual Basic este posibila memorarea datelor in acest fel? Daca da, mi-ai putea spune te rog? As putea schimba compilatorul pentru a imi usura munca ( daca este mai usor sa lucrez in Visual Basic ). |
#6
Posted 05 January 2012 - 22:03
Notiunea de vector e prezenta in ambele limbaje. Tu in care lucrezi ca nu inteleg din exprimarea ta ?
|
#7
Posted 05 January 2012 - 22:06
Incerc sa lucrez in Visual C++ Express, dar sunt incepator.
|
#8
Posted 05 January 2012 - 22:07
Pai ai zis ca ai folosit vectori in C++ ! Ce tip de proiect faci in VS ?
|
#9
Posted 05 January 2012 - 22:12
Proiectul este de tip Windows Forms Application. Am uitat sa mentionez, imi cer scuze.
|
#10
Posted 05 January 2012 - 22:21
Pai foloseste asa cum stii din C++.
Tu acolo ai un proiect .NET pentru limbajul C++/CLI. Framework-ul are clase dedicate pentru asa ceva, sunt niste template-uri pentru array dar acum nu-s acestea de tine (desi poti studia documentatia). Acest limbaj include pe "vechiul C++" care-l stii, asa ca scrie cum ai invatat, nu te impiedica nimeni si nimic. Edited by neagu_laurentiu, 05 January 2012 - 22:23. |
|
#11
Posted 05 January 2012 - 22:28
Daca scriu exact asa cum stiu in C++, cand pur si simplu declar vectorul ( int v[10]; exact ca si in C++ ) imi da eroarea asta: error C4368: cannot define 'v' as a member of managed 'bla::Form1': mixed types are not supported. ( proiectul se numeste ''bla'' )
Este posibil sa fi facut declararea intr-un loc gresit? De obicei in C++ declararea se facea fie in main fie inafara lui pe post de variabila globala. Aici chiar nu imi dau seama unde as putea sa declar vectorul in asa fel incat sa mearga. Edited by rares_12, 05 January 2012 - 22:29. |
#12
Posted 05 January 2012 - 22:42
Cauta in proprietati la proiect sa ai /crl nu /clr:pure : http://msdn.microsof...y/k8d11d4s.aspx
Daca vrei C++/CLI (desi banuiesc nu stii ce vrei) atunci: http://msdn.microsof.....28VS.80).aspx http://www.cplusplus...um/windows/3279 http://www.codeproje...kcppcli.aspx#A5 http://www.codeproje...pcliarrays.aspx Uite unde sa schimbi: http://www.tenouk.co...nsoleapp016.png |
#13
Posted 05 January 2012 - 23:42
Multumesc foarte mult pentru raspuns! Am modificat la proprietati si acum este /clr. Dar este aceeasi problema...cred ca am gresit cu ceva.
Am postat codul mai jos. Partile in bold sunt ce am adaugat eu la codul deja generat automat de compilator atunci cand am creat proiectul. Din cate vad C++/CLI este foarte foarte complicat...chiar ca nu vreau asa ceva . Iti multumesc foarte mult pentru recomandare. Form-ul contine 3 elemente: un label ( lblText ), un textbox ( txtBox ) si un buton ( btnApasa ). Variabila a este o variabila ce ma ajuta sa iau continutul din textbox, sa il convertesc intr-un numar intreg, dupa care sa schimb textul label-ului cu acel numar ( labelul l-am pus orientativ, deoarece programul de abia il incepusem ) Tot ce ar trebui sa faca acest program ar fi sa citeasca numerele pe care eu le introduc in textbox, sa le salveze si sa le si scrie in label. Erorile sunt: error C3845: 'bla::Form1::i': only static data members can be initialized inside a ref class or value type error C4368: cannot define 'v' as a member of managed 'bla::Form1': mixed types are not supported #pragma once namespace bla { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Summary for Form1 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Add the constructor code here // } protected: /// <summary> /// Clean up any resources being used. /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::TextBox^ txtBox; protected: private: System::Windows::Forms::Button^ bntApasa; private: /// <summary> /// Required designer variable. /// </summary> System::ComponentModel::Container ^components; private: System::Windows::Forms::Label^ lblText; [b]private: int a,i=0,v[10];[/b] #pragma region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> void InitializeComponent(void) { this->txtBox = (gcnew System::Windows::Forms::TextBox()); this->bntApasa = (gcnew System::Windows::Forms::Button()); this->lblText = (gcnew System::Windows::Forms::Label()); this->SuspendLayout(); // // txtBox // this->txtBox->Location = System::Drawing::Point(95, 99); this->txtBox->Name = L"txtBox"; this->txtBox->Size = System::Drawing::Size(100, 20); this->txtBox->TabIndex = 0; // // bntApasa // this->bntApasa->Location = System::Drawing::Point(95, 157); this->bntApasa->Name = L"bntApasa"; this->bntApasa->Size = System::Drawing::Size(75, 23); this->bntApasa->TabIndex = 1; this->bntApasa->Text = L"button1"; this->bntApasa->UseVisualStyleBackColor = true; this->bntApasa->Click += gcnew System::EventHandler(this, &Form1::bntApasa_Click); // // lblText // this->lblText->AutoSize = true; this->lblText->Location = System::Drawing::Point(95, 32); this->lblText->Name = L"lblText"; this->lblText->Size = System::Drawing::Size(90, 13); this->lblText->TabIndex = 2; this->lblText->Text = L"Nu A Fost Apasat"; // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(284, 262); this->Controls->Add(this->lblText); this->Controls->Add(this->bntApasa); this->Controls->Add(this->txtBox); this->Name = L"Form1"; this->Text = L"Form1"; this->ResumeLayout(false); this->PerformLayout(); } #pragma endregion [b]private: System::Void bntApasa_Click(System::Object^ sender, System::EventArgs^ e) { a=Convert::ToInt32(txtBox->Text); lblText->Text=Convert::ToString(a); v[i]=a; i++; }[/b] }; } Edited by rares_12, 05 January 2012 - 23:49. |
#14
Posted 06 January 2012 - 00:06
Ori declari clase unmanaged pentru scopul tau sau declari global acele variabile, nu in acea clasa managed.
Mai ai si directiva #pragma unmanaged. Altfel daca te incurci cu C++/CLI foloseste template-urile respective din exemple, aloci cu gcnew si toate nebunia (inventata de MS). Pentru .NET s-a inventat C# sau VB.NET. C++/CLI e pentru cod mixt dar scris de cei cu experienta. Edited by neagu_laurentiu, 06 January 2012 - 00:08. |
#15
Posted 06 January 2012 - 00:14
Deci int a,i=0,v[10]; le declar global si o sa mearga? E destul de greu pentru mine sa imi si dau seama care e zona de declarare a variabilelor globale in toata nebunia asta ...
Am incercat sa inteleg macar putin toata chestia cu gcnew si restul...m-a cam facut sa fug de C++/CLI . Edited by rares_12, 06 January 2012 - 00:14. |
|
#16
Posted 06 January 2012 - 00:25
Separa codul C++ de cel C++/CLI iar intre cele doua tehnologii doar faci apeluri.
|
#17
Posted 06 January 2012 - 00:33
Deci ma folosesc de niste functii construide de mine pentru a face apeluri intre cele doua limbaje?
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users