2017-01-16 2 views
-1

так что все, что я хочу, это сохранить место, в котором точка (.) Появляется в моей строке в переменной: «postemp». Так им письменность этот код:Проблема синтаксиса в Pascal с «pos»

PosTemp := Pos('.',Dateiname); 

Dateiname это строка, которая выглядит следующим образом: "# 1:. Bisasam // 11 кг". Итак, технически PosTemp теперь должен презирать «12». Но когда я скомпилировать, Lazarus дает мне:

Fatal, Syntax Error: ";" expected, but "(" found.

Я не знаю, почему на земле, он не принимает мой код ... Любая помощь?

рассматривает

Mo

Вот полный код:

FUNCTION LoadGame() : STRING; 

VAR Dateiname, Temp : String; 
    Textdatei : Text; 
    Frage, PosTemp, PosTemp2 : Integer; 


BEGIN 

    Frage := 99; 

    Clrscr; 

    Writeln('Welcher Speicherstand soll geladen werden?'); 
    Writeln; 
    Readln(Dateiname); 
    Readln(Dateiname); 
    Dateiname := Dateiname+'.txt'; 

    Clrscr; 



    Assign(Textdatei,Dateiname); 
    Reset(Textdatei); 
    WHILE NOT EoF(Textdatei) DO 
    BEGIN 
     Readln(Textdatei,Dateiname); 
     Writeln(Dateiname); 
    END; 
    Close(Textdatei); 

    WHILE (Frage <> 1) AND (Frage <> 0) DO 
    BEGIN 
     Writeln; 
     Writeln('Diesen Spielstand laden?'); 
     Writeln; 
     Writeln('1: Ja'); 
     Writeln; 
     Writeln('0: Nein'); 
     Writeln; 
     Readln(Frage); 
    END; 

    IF Frage = 0 THEN 
    BEGIN 
     Clrscr; 
     Hauptmenu(); 
    END; 

    IF Frage = 1 THEN 
    BEGIN 

     Reset(Textdatei); 
     Writeln; 

     IF NOT EoF(Textdatei) THEN 
     BEGIN 

       Readln(Textdatei,Dateiname); 
       Writeln(Dateiname); 

       // NUMMER 
       Temp := Copy(Dateiname,2,1); // Speichert Position als Str 
       PosTemp := StrToInt(Temp); // Position wird als Int gespeichert 
       Pos := PosTemp; 
       Liste := AddElement(Name, Pos, KG, Liste); // Pos wird an AddElement übergeben 

       // NAME 
       PosTemp := Pos(' ',Dateiname); 
       PosTemp2:= Pos('.',Dateiname); 
       Temp := Copy(Dateiname,PosTemp+1, 
       Name := Temp; 
       Liste := AddElement(Name, Pos, KG, Liste); 



     END; 


    END; 

    ClrScr; 
    Writeln('Laden erfolgreich!'); 
    Readkey; 
    Submenu();   
+1

Пожалуйста, дайте нам полный исходный код. Мы не можем знать, что случилось. – Wosi

+0

Ошибка в этой строке: 'Temp: = Copy (Dateiname, PosTemp + 1,' –

+0

Я знаю, это потому, что строка выше порождает ошибку, и поскольку я не знаю, почему, я просто продолжал программирование. но не завершено, но почему часть до того, чтобы дать мне синтаксическую ошибку? – user7285912

ответ

0

Линия

Pos := PosTemp; 

выглядит изворотливым. Pos не объявляется переменной в коде и, таким образом, определяется как (системный блок).

Обратите внимание, что пример кода еще не завершен и не компилируется. Если у вас есть переменная Pos, попробуйте префикс ссылок на функцию с помощью System, например

PosTemp := System.Pos(' ',Dateiname); 
Смежные вопросы