Strona 1 z 1

Odczytywanie z pliku, zamiana string na int

Nowy postNapisane: sobota, 21 listopada 2009, 16:50
przez Bert1223
Tak jak w temacie, mam plik dane.txt który wygląda tak:
Kod: Zaznacz cały
myLan: 1
name:  Leszczyny
myLan: 2
name:  Czarwionka


Poniższym kodę próbuję pobrać dane z pliku, a dalej za pomocą modyfikatorów klasy myLan ustawić wartości.
Kod: Zaznacz cały
char line[ MAX_WIDTH ];
      int i = 0;
      while( fgets( line, MAX_WIDTH, fp ) != NULL )
      {
         char charText[ MAX_WIDTH ];
         sprintf(charText, "%s", line);
         String stringText = charText;
         stringText.Delete(1, 7);

         if(i == 0)
         {
            int x = StrToInt(stringText);
            myLan::setId(x);
         }

         if(i == 1)
         {
            //sprintf(charText, "%s", stringText.c_str());
            //myLan::setName(charText);
            //i = -1;
         }

         i++;
      }
      fclose( fp );

Re: Odczytywanie z pliku, zamiana string na int

Nowy postNapisane: sobota, 21 listopada 2009, 16:59
przez Cyfrowy Baron
A możesz napisać bardziej zrozumiale o co tobie chodzi...? Pytanie jest dla mnie niezrozumiale, a konkretnie to co chcesz zrobić po wczytaniu danych z pliku z tymi danymi.

Co do konwersji zmiennych to poczytaj sobie w serwisie Cyfrowy Baron w działy: porady -> łańcuchy znaków i porady -> zmienne.

Re: Odczytywanie z pliku, zamiana string na int

Nowy postNapisane: sobota, 21 listopada 2009, 17:08
przez Bert1223
Przepraszam, nie dokończyłem postu, jest jakiś problem przy wpisaniu w formularz kodu odpowiedzialnego za otwarcie pliku zwracany komunikat to:
Method Not Implemented

GET to /forum/posting.php not supported.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Power MOD by web4host.net Server at www.programowanie.cal.pl Port 80


A wracając do postu to, wykorzystałem wierzę z podanego przez Ciebie linku.
Dokładniej przy próbie kompilacji tego zwracany jest komunikat:
"1
" is not a valid integer value.

Rozumiem to tak, program dokleja w którymś miejscu ", a dalej funkcja StrToInt nie potrafi zamienić tego na liczbę?

Re: Odczytywanie z pliku, zamiana string na int

Nowy postNapisane: sobota, 21 listopada 2009, 17:14
przez Cyfrowy Baron
Jest problem z wpisaniem kodu czy był? Jeżeli jest problem załącz plik tekstowy jako załącznik do forum.

Funkcja StrToInt potrafi prze-konwertować tekst na liczbę, ale tylko tekst będący liczbą, czyli, jeżeli tekst zawiera wartość "1" to da się prze-konwertować, ale jeżeli zawiera np. " 1" (spacja jeden), to już nie można dokonać konwersji.

Z treści komunikatu:

"1
" is not a valid integer value.


wynika, że tekst zawiera znak łamania linii, czyli nie tylko jedynkę. Znak ten jest niewyświetlany, lecz istnieje, więc nie można dokonać konwersji tekstu, który nie jest liczbą lub cyfrą.

Re: Odczytywanie z pliku, zamiana string na int

Nowy postNapisane: sobota, 21 listopada 2009, 17:18
przez Bert1223
Tak masz rację, doczytałem o plikach tekstowych i na końcu linii dodawany jest znak /n wskazujące zakończenie danej linii.
Problem rozwiązuje linia kodu:
Kod: Zaznacz cały
stringText.Delete(stringText.Length(), stringText.Length());

Usunięcie ostatniego znaku /n i wszystko działa poprawnie.