Odczytywanie z pliku, zamiana string na int

dział ogólny

Odczytywanie z pliku, zamiana string na int

Nowy postprzez Bert1223 » sobota, 21 listopada 2009, 16:50

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 );
Ostatnio edytowano sobota, 21 listopada 2009, 17:02 przez Bert1223, Å‚Ä…cznie edytowano 3 razy
Avatar użytkownika
Bert1223
Bladawiec
Bladawiec
 
Posty: 45
Dołączył(a): czwartek, 15 października 2009, 02:41
PodziÄ™kowaÅ‚ : 6
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Odczytywanie z pliku, zamiana string na int

Nowy postprzez Cyfrowy Baron » sobota, 21 listopada 2009, 16:59

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.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Odczytywanie z pliku, zamiana string na int

Nowy postprzez Bert1223 » sobota, 21 listopada 2009, 17:08

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ę?
Avatar użytkownika
Bert1223
Bladawiec
Bladawiec
 
Posty: 45
Dołączył(a): czwartek, 15 października 2009, 02:41
PodziÄ™kowaÅ‚ : 6
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Odczytywanie z pliku, zamiana string na int

Nowy postprzez Cyfrowy Baron » sobota, 21 listopada 2009, 17:14

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ą.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Odczytywanie z pliku, zamiana string na int

Nowy postprzez Bert1223 » sobota, 21 listopada 2009, 17:18

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.
Avatar użytkownika
Bert1223
Bladawiec
Bladawiec
 
Posty: 45
Dołączył(a): czwartek, 15 października 2009, 02:41
PodziÄ™kowaÅ‚ : 6
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 26 gości