[C++/CLI] Odczytywanie z pliku danych

0

Posiadam plik file.txt z zapisanymi danymi w formacie (koniec rekordu oznaczony znakami ||):
Imię;Nazwisko;Numer telefonu;Data ostatniego zabiegu;Zabiegi||

Program ma odnaleźć odpowiednie imię i nazwisko w pliku TXT, po czym informacje z pola "Data ostatniego zabiegu" i "Zabiegi" mają zostać wpisane do pliku TXT w odpowiednim miejscu (nie modyfikując imienia i nazwiska) w rekordzie.
textBox1 zawiera Imię, textBox2 zawiera Nazwisko, textBox3 zawiera Zabiegi, dateTimePicker1 zawiera Datę ostatniego zabiegu.

Kod wykonujący się przy kliknięciu przycisku:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			System::String^ str;
			System::String^ str2;
			System::Char^ znak;
			StreamReader^ din = File::OpenText("file.txt");
			int i=0;
			
			do {
          str=din->ReadLine();
          //szukam imie i nazwisko
          while (znak!=";") {
                              //źle
                              znak=str[i];
                              imie=imie+znak;
                              i=i+1;
                             }
         } while ((str = din->ReadLine()) != nullptr);

		 }

Źle skonstruowałem drugą pętle while, kompilator pokazuje błąd:
'!=' : no conversion from 'const char *' to 'int'

Niestety C++/CLI to nie to samo co C++... :(
Proszę o pomoc.

0

Nie znam C++/CLI, ale jakbyś zmienił na

(znak!=';')

to by nie poszło?
Z zwykłym C++ taka konstrukcja jak Twoja nie przechodzi kompilacji

warning: comparison with string literal results in unspecified behaviour   
error: ISO C++ forbids comparison between pointer and integer

ale po sugerowanej poprawce owszem.

0

Ok. Zmieniłem i poszło dalej, jednak teraz nie wiem dlaczego zmienna imie ma błędną wartość (jakieś losowe cyfry) zamiast normalnego imienia. Sprawdzałem plik i imie jest poprawnie zapisane.
Prosiłbym kogoś o napisanie prawidłowego kodu na tę funkcję, bo sam rady nie dam. :(

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			System::String^ str;
			System::String^ imie;
			char znak;
			//str=textBox1->Text;
			int i=0;
			System::String^ str2;
			StreamReader^ din = File::OpenText("file.txt");
			do {
				str=din->ReadLine();
				//szukam imie i nazwisko
					          while (znak!=';') {
                              znak=str[i];
                              imie=imie+znak;
                              i=i+1;
                             }
				} while ((str = din->ReadLine()) != nullptr);
			textBox1->Text=imie; //tymczasowo do pogladu wartosci

		 }

1 użytkowników online, w tym zalogowanych: 0, gości: 1