Ilość znaków w pliku tekstowym

0

Witam, mam pewien problem. Napisałem program, który liczy znaki w danym pliku tekstowym:

	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 int i=0;
				 char ch;

				 ifstream plik("C:/Users/Blady/Desktop/text.txt");

				 while(!plik.eof())
				 {
					 plik.get(ch);
					 i++;
				 }

				 label1->Text=Convert::ToString(i-1);
			 }

Wszystko ładnie działa z tym wyjątkiem, że przypisuje mu stałą ścieżkę pliku. Chciałbym skorzystać z komponentu openFileDialog. Napisałem już początek - otwieranie pliku:

	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 int i=0;
				 char ch;

				 openFileDialog1->ShowDialog();
				 System::String^ adres=System::IO::Path::GetFullPath(openFileDialog1->FileName);
				 System::IO::FileStream^ plik=System::IO::File::Open(adres,System::IO::FileMode::Open);
			 }

Teraz zastanawiam się jak zrobić pętlę, która wykonuje się aż do ostatniego znaku pliku tekstowego - while(!plik.eof()); oraz co zrobić, żeby jechał od początku po każdym znaku czyli - plik.get(ch);.

Z góry dziękuję za pomoc.

0

Osobiście tworze programy właśnie w C# - pod Windows Mobile. To zagadnienie akurat muszę zrobić do szkoły więc musi być C++. Bardzo proszę o pomoc - szukam odpowiednika do tych dwóch funkcji - get i eof. W sumie nie wiem czy można to nazwać odpowiednikiem - może jest to jakaś druga metoda - nie umiem tego nazwać inaczej ze względu na małe doświadczenie w programowaniu.

0

Drobna uwaga, C++ to zupełnie inny język niż C++/CLI.

0

No to najlepiej jakbyś po prostu nazwę pliku z dialogu przekonwertował na std stringa

0

Dzięki za pomoc, ale mimo wszystko jednak chciałbym to zrobić jakby jedna opcją. Jak zrobić pętlę, która przechodzi przez wszystkie znaki do końca pliku?

while(plik->EndRead())
while(plik::feof())
while(plik::EOF())

Jak to dokończyć? Wiadomo, że można by przeprowadzić konwersję, ale czy warto dla tak krótkiego zadanka?

0

Poradziłem sobie. Dla potomnych - nie trzeba kombinować:
plik->Length
Pozdro!

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