Почему не работает следующее:

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Почему не работает следующее:

Сообщение tria »

var v:variant;

TrimRight(v);

И где можно прочитать об этом?
Replicator
постоялец
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven
Контактная информация:

Сообщение Replicator »

Компилятор не может определить тип переменной v:
Error: Can't determine which overloaded function to call


Однако, интересно. При использовании привидения типов ничего не произошло:

Код: Выделить всё

program p;
uses
  sysutils, variants;
var
  v: variant;
begin
  v := '   sgf jsfg j sfj s        ';
  TrimRight(string(v));
  writeln(v, '<');
end.

Код: Выделить всё

E:\MyProjects\fpc>fpc p
Target OS: Win32 for i386
Compiling p.pp
Linking p.exe
10 Lines compiled, 1.2 sec

E:\MyProjects\fpc>p
   sgf jsfg j sfj s        <

E:\MyProjects\fpc>
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Логично... Ведь результат, возвращенный TrimRight, обратно в v никто не записывал :)
Replicator
постоялец
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven
Контактная информация:

Сообщение Replicator »

Блин! Во я дебил...

Вот так все работает:

Код: Выделить всё

program p;
uses
  sysutils, variants;
var
  v: variant;
begin
  v := '   sgf jsfg j sfj s        ';
  v := TrimRight(string(v));
  writeln(v, '<');
end.
Ответить