[Delphi] Lazarus - błąd kompilacji i konwersja

0

Hej, mam problem z moim kodem. Wyrzuca mi kilka błędów, chyba chodzi o brak konwersji.

var
FileName: TFileName;
f: TextFile;
i, miejsce, x, y: Integer;
Str, tmp, grid: String;

//...

repeat

   Readln(f, Str);

      repeat
      begin

         miejsce := PosEx(' ', Str, i);
         grid = Copy(Str, i, miejsce - i); //Illegal expression
         StringGrid1.Cells[x,y] := grid;
         i = miejsce + 1; //Illegal expression

      end;
      until(Eoln(Str)); //Call by var for arg no. 1 has to match exactly: Got "AnsiString" expected "Text"

until(EOF(f));

CloseFile(f);

Błędy w kompilacji zaznaczyłem komentarzami.

0

istnieje procedura o nazwie Str, i pewnie dlatego ci się kaszani. nazwij stringa inaczej.

1

spróbuj wszędzie używać operatorów przypisania := zamiast porównania =

0

Eoln(Str)
a w argumencie nie powinien być plik?

0

Hmm, zmiana nazwy stringa nie pomogła.

Eoln(Str) chciałem zaznaczyć koniec linii stringa. Czy może robi się to innaczej?

1

co masz na myśli mówiąc "zaznaczyć koniec stringa"? o_O
jak chcesz sprawdzic czy na koncu stringa wystepuje znak konca linii to mozesz odniesz sie do ostatniego znaku tak:
str[Length(str)] i przyrownac ten znak do #13 (Carriage return) i #10 (line feed), w windowsie wystepuja oba naraz w linuksie jeden z nich (nie pamietam ktory). mozesz zrobic tak:
if (str[Length(str)]=#13) or (str[Length(str)]=#10) then (albo w whilu taki warunek)

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