Bład podczas konwersji typów danych string-integer, przy użyciu val.

0

Witam, chciałem dodać do swojej konsolowej gry wczytywanie postaci.
Napotkał mnie jednak problem z konwersją danych, gdy sprawdzałem samą konwersje to działało,
jednak po dodaniu jej do kodu, program gdy ma konwertować licznby wysypuje się.
Sprawdzałem również na samych liczbach i jest tak samo.

begin
clrscr;
x:=0;	
        assign(plik,'C:\p\ustawienia.txt');
        reset(plik);
        while not eof(plik) do
		begin
		
		read(plik,ustawienia);
		if x=0 then
		begin
		        y:=(Byte(ustawienia[0]));
			imie:= Copy(ustawienia, 6, y);
                end;
		if x=1 then
		begin
			y:=(Byte(ustawienia[0]));
			silas:= copy(ustawienia, 6, y);
			val(silas, sila, xx);
		end;
                 inc(x);
               end;
	close(plik);
end;

plik TXT wygląda tak

nick Michal
sila 3

Pozdrawiam,
Michalk001

0
  1. W czym kompilujesz?
  2. Daj cały kod a nie skrawek gdy nie nie wiadomo jakie typy dla zmiennych dałeś...
0

Przede wszystkim podaj deklaracje zmienych i typów, jakie wykorzystujesz w podanym kodzie; Po drugie to w takich przypadkach odpowiedź dałby Ci debuger - wystarczy zatrzymać program po skopiowaniu części łańcucha i sprawdzić w oknie Watches jaka jest zawartość zmiennych imie i silas; Dzięki temu nie dziwiłbyś się dlaczego Val zwraca błąd konwersji;

Poza tym jeśli już koniecznie chcesz takie informacje przechowywać w pliku tekstowym, to już lepiej było by zastosować pliki INI - przynajmniej nie będzie problemu z kopiowaniem części łańcuchów.


Wątek przenoszę do działu Newbie, ponieważ dotyczy podstaw języka.

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